成功将文件写入外部存储,但无法删除文件夹。

huangapple go评论124阅读模式
英文:

Success write files to external storage, but can't delete folder

问题

在清单文件中:

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

在我的ViewModel中:

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
        )
    }
}

以及在工具方法中:

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 studio 3.6

in manifest:

&lt;uses-permission android:name=&quot;android.permission.WRITE_EXTERNAL_STORAGE&quot; /&gt;

here my viewmodel:

 init {
        Debug.d(TAG, &quot;init: call_loadOperationHistory()&quot;)
        //loadOperationHistory()
        val saveImagesDir =
            AndroidUtil.getExternalStoragePath(getApplication&lt;Application&gt;().applicationContext)
        if (saveImagesDir.exists()) {
            val isDelete = saveImagesDir.delete()
            Debug.d(
                TAG,
                &quot;init: isDelete = &quot; + isDelete + &quot;, saveImagesDir_delete = &quot; + saveImagesDir
            )
        }
    }

and here util method:

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

I success write files to this dir. But can't delete this dir.

Method:

val isDelete = saveImagesDir.delete()

always return false

答案1

得分: 3

提供读写权限并尝试以下操作:

File dir = new File("根路径");
FileUtils.deleteDirectory(dir);

在gradle文件中添加以下行以使用Apache库:

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

Provide Read and Write permissions and Try with this:

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

Add this line in gradle file to have Apache

implementation &#39;org.apache.commons:commons-io:1.3.2&#39;  

答案2

得分: 0

请在添加以下内容后再检查:

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

权限以供清单使用。

英文:

Can you please check same once adding

&lt;uses-permission android:name=&quot;android.permission.READ_EXTERNAL_STORAGE&quot; /&gt;

Permission to manifest

答案3

得分: 0

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

首先清空它。

英文:

If the directory contains files then you cannot delete it with the File class.

Empty it first.

huangapple
  • 本文由 发表于 2020年1月3日 19:40:54
  • 转载请务必保留本文链接:https://go.coder-hub.com/59577998.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定