我无法写入mini x plus h24中的外部sd(/ mnt / extsd)
我已经在清单中插入了
系统有两张SD卡,第一张可以通过Environment.getExternalStorageDirectory()访问,但第二张只能通过绝对路径访问
try{
File file3 = new File("/mnt/extsd/", "file.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter(file3));
writer.write("hello");
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
异常将此消息返回给我 /mnt/extsd/file.txt:打开失败:EACCES(Permissio denied)
有什么建议吗?
答案 0 :(得分:3)
在android清单文件中添加以下权限。
写入权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
阅读权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
答案 1 :(得分:3)
您需要添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在 AndroidManifest.xml 文件中。
修改
如果您已经添加了该权限并且仍然获得了权限被拒绝错误,那么您可能正在写入只读目录,或者您不允许在该目录的根目录上写入。
您可能想要检查目录是否可写。像这样的东西:
file3.canWrite()
或者您可以在编写之前尝试添加子目录
File newDir = new File("/mnt/extsd/myFiles");
newDir.mkdirs();
File file3 = new File(newDir.getAbsolutePath(), "file.txt");
答案 2 :(得分:1)
简单只需在android清单文件中添加权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 3 :(得分:0)
如果您已经在清单文件中添加了权限,那么, 试试这些:
1) File file1 = new File(Environment.getExternalStorageDirectory() + "file.txt");
2) File file2 = new File("file:///mnt/extsd/", "file.txt");
3) File file3 = new File("file:///mnt/sdcard/", "file.txt");
然后使用
String filepath = "file:///" + file1.getAbsolutePath();