我有 Nexus 9设备。我会在/ sdcard / path中创建一个个人文件夹,如下所示:
/sdcard/MyFolder/
所以我编码了这个:
File directory = new File("/sdcard/MyFolder/");
if(directory.mkdirs()){
Toast.makeText(context, "Folder created", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(context, "Folder not created", Toast.LENGTH_SHORT).show();
}
当我启动应用程序时,它会显示“未创建文件夹”,因此它不会将名为MyFolder的文件夹创建到/ sdcard / path中。在Nexus 9设备中,/storage/emulated/0
路径不存在,因此我必须使用/ sdcard / path来访问我的存储。
我还在AndroidManifest.xml文件中使用了权限,这样:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
你能告诉我,这有什么不对吗? 感谢
答案 0 :(得分:4)
由于许多设备具有不同的文件结构,因此使用Environment.getExternalStorageDirectory()
来确定SD卡路径更安全。
你能试试这段代码吗?
File folder = new File(Environment.getExternalStorageDirectory() + "/MyFolder");
if (!folder.exists()) {
folder.mkdir();
}
答案 1 :(得分:0)
尝试指定外部存储,如下所示:
File directory = new File(Environment.getExternalStorageDirectory().toString()+"/MyFolder");