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

时间:2016-01-31 17:08:31

标签: java android

我有一个简单的应用程序试图完成: //在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();
    }

3 个答案:

答案 0 :(得分:1)

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

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

根据[文章。] [1]

答案 1 :(得分:0)

你需要调用osw.close();用于创建文件。

答案 2 :(得分:0)

在挖掘和玩耍之后,

事实证明我忘了叫“fos.close()”而不只是“osw.close()”

以及调用“file.createNewFile()”是强制性的,“mkdirs()”由于某种原因无效。

但感谢大家,感谢您的所有参与和努力。