无法在存储根目录中创建文件



我有一个简单的应用程序正在尝试完成:列出 txt 文件中的所有 SD 卡文件名。

我已经尝试了很多方法,至少在根存储目录中创建文件,但没有运气(不是在使用"getFilesDir()"的应用程序私有文件中),其中一种方法显示在代码示例中。是的,我使用了适当的权限。

任何帮助将不胜感激。

String path = Environment.getExternalStorageDirectory().getAbsolutePath();
    File file = new File(path, "Something.txt");
    file.mkdirs();
    String[] array = file.list();
    try {
        FileOutputStream fos = new FileOutputStream(file, true);
        OutputStreamWriter osw = new OutputStreamWriter(fos);
        osw.write(String.valueOf(array));
        osw.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

如果要写入外部存储,请将以下权限添加到清单文件中:

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

根据此[文章。[1]

您需要调用 osw.close(); 才能创建文件。

挖了一会儿玩了一会儿,

事实证明,我忘了调用"fos.close()"而不仅仅是"osw.close()"

调用"file.createNewFile()"也是强制性的,"mkdirs()"由于某种原因不起作用。

但感谢大家,你们所有的参与和努力都得到了赞赏。

最新更新