我有一个安卓平板电脑,外部SD卡名为“/ mnt / extsd”,其内部存储名为“/ mnt / sdcard”。
当我尝试通过以下代码在“/ mnt / sdcard”中创建文件夹时。应用程序成功在根目录中创建文件夹,而我尝试在“/ mnt / extsd”中创建文件夹,它烘烤异常“打开失败:EACCESS(权限被拒绝)”
// create a File object for the parent directory
File root_directory = new File("/mnt/extsd/abc/");
// have the object build the directory structure, if needed.
root_directory.mkdirs();
// create a File object for the output file
File outputFile = new File(root_directory, "abc_checking");
// now attach the OutputStream to the file object, instead of a String representation
try {
FileOutputStream fos = new FileOutputStream(outputFile);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Utility.showDialogue(getActivity(), e.getMessage() + "");
}
清单
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
你们的任何帮助都会非常明显。请帮助...... :(
答案 0 :(得分:2)
如果Environment.getExternalStorageDirectory()
返回/mnt/sdcard/
,那么您应该在应用程序中使用外部存储。虽然您的设备可能有其他挂载点(例如/mnt/extsd/
),但这些挂载点不属于Android SDK,并且对您的特定设备或多或少都是唯一的。您需要与设备的制造商联系,询问他们是否可以使用常规SDK应用程序中的/mnt/extsd/
。
如果您具有root访问权限,则可以通过更改/mnt/extsd/
的权限来解决此问题,但这不是一个编程主题,因此超出了StackOverflow的范围。