【发布时间】:2019-10-27 11:27:37
【问题描述】:
我正在尝试在手机的内部存储中创建一个文件夹,但无论我做什么都不会创建它
我尝试过的事情:
从电脑上拔下手机
在清单中和以编程方式为 API 23+ 设置权限
我能找到的每个文件夹变体: Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) Environment.getDataDirectory() 等等。
在每篇文章或文章的变体中搜索类似问题
尝试了 mkdir() 和 mkdirs() 的两种变体
检查手机是否存在文件夹
此代码也绑定到一个按钮,因此在我第二次按下它时应该已经授予权限请求。
File sdir = new File (Environment.getExternalStorageDirectory().getpath(), "/DBTEST/");
String[] PERMISSIONS_STORAGE = {
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
ActivityCompat.requestPermissions(MainActivity.this, PERMISSIONS_STORAGE, 1);
System.out.println("DIRECTORY CREATED: " + sdir.mkdirs());
System.out.println("EXISTS: " + sdir.exists());
System.out: DIRECTORY CREATED: false
System.out: EXISTS: false
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.testM">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
【问题讨论】:
-
没有尝试创建目录的代码。
-
看看 sdir.mkdir() 和 sdir.mkdirs()。
-
是的,我已经绑定了 mkdir 和 mkdirs 的两种变体,但它们都不起作用:/
-
你当然应该发布完整的代码。
-
System.out.println("DIRECTORY CREATED: " + sdir.mkdirs());如果目录已经存在,则返回 false。仅当目录不存在时才调用 mkdir() 和 mkdirs()。
标签: java android android-permissions