【问题标题】:Success write files to external storage, but can't delete folder成功将文件写入外部存储,但无法删除文件夹
【发布时间】:2020-01-03 11:40:54
【问题描述】:

安卓工作室 3.6

在清单中:

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

这是我的视图模型:

 init {
        Debug.d(TAG, "init: call_loadOperationHistory()")
        //loadOperationHistory()
        val saveImagesDir =
            AndroidUtil.getExternalStoragePath(getApplication<Application>().applicationContext)
        if (saveImagesDir.exists()) {
            val isDelete = saveImagesDir.delete()
            Debug.d(
                TAG,
                "init: isDelete = " + isDelete + ", saveImagesDir_delete = " + saveImagesDir
            )
        }
    }

这里是 util 方法:

public static File getExternalStoragePath(Context context) {
        File root = context.getExternalFilesDir(null);
        File savedImagePath = new File(root + "/saved_images");
        return savedImagePath;
    }

我成功将文件写入此目录。但是不能删除这个目录。

方法:

val isDelete = saveImagesDir.delete()

总是返回 false

【问题讨论】:

    标签: android android-external-storage


    【解决方案1】:

    提供读写权限并尝试:

    File dir = new File("root path");
    FileUtils.deleteDirectory(dir);
    

    在 gradle 文件中添加这一行以获得 Apache

    implementation 'org.apache.commons:commons-io:1.3.2'  
    

    【讨论】:

      【解决方案2】:

      添加后能否请您检查一下

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

      显示权限

      【讨论】:

      • 没有帮助。结果相同
      【解决方案3】:

      如果目录包含文件,则不能使用 File 类删除它。

      先清空它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 2015-07-17
        相关资源
        最近更新 更多