3

我无法在 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: open failed: EACCES (Permissio denied)

有什么建议么?

4

4 回答 4

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");
于 2013-02-13T08:55:44.007 回答
3

在 android 清单文件中添加以下权限。

写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

读取权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
于 2013-02-13T08:55:35.523 回答
1

很简单,只需在 android manifest 文件中添加权限即可。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2013-02-13T08:57:15.897 回答
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();
于 2013-02-13T09:22:16.063 回答