问题: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: 补充说明一下,numpy的gradient()实际更复杂,因为它支持多维数组。这里仅仅以一维数组为例。 [树莓派5][解决]RuntimeError: Cannot determine SOC peripheral base address【不是用GPIOZERO,而是用RPI.GPIO】 主打的就是一个真诚: 没解决,无用 【Windows】【VS】error C2220: 以下警告被视为错误 zhanshenQHY: 为什么改了还是这样?