【问题标题】:Can not get Android to create a folder in public external storage无法让 Android 在公共外部存储中创建文件夹
【发布时间】:2016-02-21 07:40:30
【问题描述】:

我正在使用 Android Studio。我的项目设置为需要 API 版本 11。模拟器设置为 Nexus 5 API23(标准默认设置)。

我想让我的应用程序将一个简单的文本文件写入一个位置,我可以通过插入 USB 电缆将创建的文本文件拉到我的计算机上。所以它需要在公共外部存储中。

无论出于何种原因,我都无法获取代码来为我的文本文件创建一个文件夹。我已将我的代码与我拥有的“实用程序”类中的这个小块配对:

public static boolean createTheDangFolder(Context c, String fileName, String body) {
    boolean saved = true;
    //File dir = new File(c.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS), "MyCustomFolder");
    File dir = new File(Environment.getExternalStorageDirectory(), "MyCustomFolder");
    if (!dir.exists()) {
        saved = dir.mkdirs();
    }
    return saved;
}

此函数始终返回 false。如果我在“文件”行交易 cmets,它将返回 true,但注释掉的行是应用程序内存,我无法通过 USB 访问文件。

我的清单文件中有这一行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

我一生都无法弄清楚为什么它不起作用,并且网站上的其他问题都没有给我一个有效的解决方案。

【问题讨论】:

    标签: android file save


    【解决方案1】:

    他们更改了 KitKat 中外部存储的权限。您只能写入公共文件夹(如下载)和外部存储上您自己应用的私有目录。

    【讨论】:

    • 好的。所以我将线路更改为File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "MyCustomFolder");,但它仍然无法正常工作。这不正确吗?
    • 不打安卓的问题会少一些,写到sd卡上的私有目录就行了。让电脑从那里抓取
    • 我很乐意这样做。问题是我无法从 PC 中查看文件。我的手机上有一个文件查看器应用程序,它或通过 USB 的 PC 都无法看到应用程序目录中的任何文件。
    • 这基本上回答了这个问题。我终于找到了一堆可以让我这样做的东西。我让我的程序将创建的文件制作成一个 zip 文件并将其传递到电子邮件中,这样您就可以从手机上获取文件。
    猜你喜欢
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2021-12-14
    • 2014-04-17
    • 2012-01-13
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多