问题:file.mkdirs()总是失败
当时的用的路径是:
String dir = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test_abc";
//打印出来路径是/storage/emulated/0/test_abc
结果创建目录失败
File file = new File(dir);
file.mkdirs();
改用了getExternalFilesDir来获取路径,就可以成功(但路径不一样)
File fileEx = this.getExternalFilesDir(null);
String dir = fileEx.getAbsolutePath() + "/test_abc";
//路径是:/storage/emulated/0/Android/data/com.mytest.abc/files/test_abc
如果非要用Environment.getExternalStorageDirectory(),
那就这么解决:
在AndroidManifest.xml文件中application元素中加上android:requestLegacyExternalStorage="true"属性就可以了,如下:
<application
android:requestLegacyExternalStorage="true"
如果创建文件目录
失败
,就要考虑两个原因:
1.是否给了读写
权限
,清单文件有读写
权限
,但是
创建目录
之前是否允许了:
<uses-permission
android
:name="
android
.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission
android
:name="
android
.permission.READ_EXTERNAL_STORAGE" />
2.考虑是否是
Android
10+系统,Andr
//获取外部
存储
路径
String storage = Environment.getExternalStorageDirectory().getPath() + "/smallIcon2";
File
dir
File
= new
File
(storage);
Log.d("dir
File
", "" + dir
File
);
if (!dir
File
.exists()) {
bool...
File
file
= new
File
("/SCApp/Data/123/");
if (!
file
.exists()){
boolean
mkdir
s =
file
.
mkdir
s();
System.out.println("路径不存在,已经创建"+
mkdir
s);
失败
原因是没有
权限
,我们将
权限
打开即可。
昨天往项目中添加
Android
自定义异常捕获的工具类时(参考安卓自定义异常捕获)碰到一件很诡异的事情,createNew
File
一直报no such
file
or directory,往前追发现是
mkdir
失败
了(
mkdir
s也一样fail),网上搜了很多都说是
Android
Manifest.xml中没有配置读写sd卡的
权限
(实际上我已经配置了),最后才定位到是
android
M版本的运行时
```
java
String directoryPath = "/sdcard/mydirectory"; // 要创建的目录路径
File
directory = new
File
(directoryPath);
if (!directory.exists()) {
boolean isCreated = directory.
mkdir
s();
if (isCreated) {
// 目录创建
成功
} else {
// 目录创建
失败
上述代码中,我们首先指定要创建的目录路径,然后使用
File
类创建一个
File
对象。接下来,我们检查目录是否已经存在,如果不存在则调用
mkdir
s() 方法来
创建目录
。
mkdir
s() 方法会递归
创建目录
,如果创建
成功
则返回 true,否则返回 false。
请注意,如果您要在外部
存储
上
创建目录
(如上述代码中的 "/sdcard/mydirectory"),您需要在
Android
Manifest.xml 文件中添加相应的
权限
声明:
```xml
<uses-permission
android
:name="
android
.permission.WRITE_EXTERNAL_STORAGE" />
这样就可以在
Android
上
创建目录
了。
【Android Studio】如果你不管怎么折腾都提示Minimum supported Gradle version is 7.0.2. Current version is 6.8,请看这里
25977
[Android] 解决Release版本HWPFDocument写doc文件失败java.lang.ExceptionInInitializerError
沉迷Java无法自拔12345:
[数字信号处理][Python] numpy.gradient()函数的算法实现
SleepingBug:
[树莓派5][解决]RuntimeError: Cannot determine SOC peripheral base address【不是用GPIOZERO,而是用RPI.GPIO】
主打的就是一个真诚:
【Windows】【VS】error C2220: 以下警告被视为错误
zhanshenQHY: