无权写入/ mnt / extsd

时间:2013-02-13 08:54:24

标签: android file-io android-sdcard permission-denied

我无法写入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)

有什么建议吗?

4 个答案:

答案 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();