IOException: 没有这样的文件或目录(Android)

3
这是我的第一个Android应用程序,也是我尝试写入文件的第一次尝试。我正在尝试按照这些说明捕获日志,但我得到了FileNotFoundExeption ENOENT(没有这样的文件或目录)。这很公平,因为该目录不存在。但是如何创建该目录?还是使用另一个目录?我不知道将日志写到何处以通过电子邮件发送的最佳实践,也不知道如何为它们创建一个新目录。
这是我正在尝试使用的路径。
String path = Environment.getExternalStorageDirectory() + "/" + "MyFirstApp/";
      String fullName = path + "mylog";
File file = new File (fullName);

你是否拥有在SD卡上进行写入的权限? - rekire
2个回答

12

父目录尚不存在,您必须先创建父目录,然后再创建文件。

String path = Environment.getExternalStorageDirectory() + "/" + "MyFirstApp/";
// Create the parent path
File dir = new File(path);
if (!dir.exists()) {
    dir.mkdirs();
}

String fullName = path + "mylog";
File file = new File (fullName);

编辑:

感谢乔纳森的回答,这份代码示例更加正确。它使用了 exists() 方法。

你还需要在你的清单文件中添加权限:

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

正是我所需要的。谢谢! - NSouth

5
我想补充一下Francesco的回答,你可以使用dir.exists()方法来检查目录是否存在,而不是询问它是否是一个目录。
同时,请确保在清单文件中设置了正确的权限。
希望能对你有所帮助。
Jonatan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接