Java 在外部存储器上创建文件时出现不同的异常
在非应用程序特定文件夹的外部存储上创建文件时,我收到不同的崩溃。这段代码对大多数用户来说都很好,但对某些用户来说却失败了。创建文件时,我使用了大约以下代码:Java 在外部存储器上创建文件时出现不同的异常,java,android,file,permissions,android-external-storage,Java,Android,File,Permissions,Android External Storage,在非应用程序特定文件夹的外部存储上创建文件时,我收到不同的崩溃。这段代码对大多数用户来说都很好,但对某些用户来说却失败了。创建文件时,我使用了大约以下代码: public static boolean isExternalStorageAvailable() { String state = Environment.getExternalStorageState(); return (Environment.MEDIA_CHECKING.equals(state) || Envi
public static boolean isExternalStorageAvailable() {
String state = Environment.getExternalStorageState();
return (Environment.MEDIA_CHECKING.equals(state) || Environment.MEDIA_MOUNTED.equals(state));
}
public File getTargetDirectory() {
File root = Environment.getExternalStorageDirectory();
File directory = new File(root, "DIRECTORY");
directory.mkdirs();
return directory;
}
public static void createFile() {
if (isExternalStorageAvailable()) {
File file = new File(getTargetDirectory(), "filename.dat");
if (file.exists())
file.delete();
file.createNewFile();
//other code...
}
}
我在AndroidManifest.xml中拥有以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
这些异常发生在运行不同OS版本的不同Android设备上。这个文件夹基本上是一个下拉式文件夹,应用程序在其中写入数据,供用户传输到不同的设备。所以用户可以从他的电脑上复制这个文件夹
这可能是某种只读权限问题吗?您没有在清单中设置读写权限file@shayanpourvatan,谢谢你注意到了。更新问题。这种情况只发生在某些用户身上。我有以下权限。
libcore.io.ErrnoException: open failed: EACCES (Permission denied)
1 libcore.io.Posix.open
2 libcore.io.BlockGuardOs.open BlockGuardOs.java, line 110
3 java.io.File.createNewFile File.java, line 941
libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
1 libcore.io.Posix.open
2 libcore.io.BlockGuardOs.open BlockGuardOs.java, line 110
3 java.io.File.createNewFile