android api 23+,将文件写入根外部存储

时间:2018-11-28 13:23:53

标签: java android linux filesystems storage

我可以在外部存储USB / SD的根目录中创建一个文件夹,但不能在文件中创建一个文件夹。 这是android的限制还是我的权限有问题?

在创建文件时,我收到“ java.io.IOException:权限被拒绝”消息。

首先,我检查我的权限,它们看起来不错。

if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
{
 ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 3);
}

if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
{
 ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 2);
}

然后我扫描我的外部设备,找到了它们。
SD-> mnt / media_rw / 0123-4567
USB-> mnt / media_rw / B80A-07EC

USB和SD的行为相同,因此我仅给出SD的代码示例。

String folder = "/testfolder/";
String file = "testfile.txt";

-

check = new File("mnt/media_rw/0123-4567" + file).createNewFile();

这将导致“ java.io.IOException:权限被拒绝”

check = new File("mnt/media_rw/0123-4567" + folder).mkdirs();
check = new File("mnt/media_rw/0123-4567" + folder + file).createNewFile();

这将导致创建一个其中包含文件的文件夹。

不要介意变量名,它只是一个示例/

0 个答案:

没有答案