我不想在 /mnt/sdcard 上写入外部 sd。我正在尝试为可能的应用程序文件创建一个文件夹,并让其他人可以访问它们。
我有一个名为 Libra 的应用程序,它在导出数据时生成 .csv 文件,并且所有这些文件都进入 /Libra/ 文件夹。我希望我的应用程序也这样做。
据我所见,外部存储是 sd,内部存储是应用程序的非公共场所。
如何像 Libra 一样在 android 文件系统的根目录下创建一个目录?
如果我要求外部存储,我会得到以下不需要的位置:
Environment.getExternalStorageDirectory()
/storage/emulated/0/ (in my Nexus) /mnt/sdcard (in the emulator)
如果我尝试在绝对路径 /MyDiary 中创建文件夹,则会返回创建文件夹时出错
File folder = new File("/MyDiary");
boolean success = true;
if (!folder.exists()) {
success = folder.mkdir();
}
if (success) {
Toast.makeText(getBaseContext(), "Already exists", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getBaseContext(), "Error creating directory", Toast.LENGTH_LONG).show();
return;
}
如果我尝试检查 Libra 文件夹是否存在,它会说它不存在:
File folder = new File("/Libra");
boolean success = true;
if (!folder.exists()) {
success = folder.mkdir();
}
if (success) {
Toast.makeText(getBaseContext(), "Libra exists", Toast.LENGTH_LONG).show();
}
注意:我有在外部存储中写入的清单权限。