我看到其他一些人问同样的问题,但是发布的解决方案都没有帮助我.
我正在尝试从我的Android应用程序将(二进制)文件写入外部存储.我放入<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />了我的清单,但我仍然无法创建任何文件.我用来创建文件的代码是
File folder = new File(Environment.getExternalStorageDirectory(), SAVE_DIRECTORY);
File toWrite = new File(folder, "save.bin");
if(!toWrite.exists()){
try {
if(!folder.mkdirs())
Log.e("Save", "Failed to create directories for save file!");
toWrite.createNewFile();
} catch (IOException e) {
Log.e("Save", "Failed to create save file! " + e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
调用mkdirs()失败,并createNewFile()抛出IOException(ENOENT,因为该目录不存在)
有谁知道怎么了?我甚至试过重启我的设备.我在Nexus 7上使用API级别8,如果它有任何区别的话.
首先,您应该检查ExternalStorageState
public static boolean isSDCARDAvailable(){
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}
Run Code Online (Sandbox Code Playgroud)
如果此方法isSDCARDAvailable返回true,则使用您的代码
添加权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
| 归档时间: |
|
| 查看次数: |
4646 次 |
| 最近记录: |