删除文件夹从内部存储在android?

1qczuiv0  于 2023-05-15  发布在  Android
关注(0)|答案(5)|浏览(196)

如何删除文件夹(包含一些文件夹和文件)从内部存储?文件夹下面有一些树。

folder
|_________  C2 (folder)
             |________1 (folder)
                      |________1.gif
                      |________2.gif
                      |________3.gif
                      |________4.gif
             |________2 (folder)
                      |________1.gif
                      |________2.gif
                      |________3.gif
                      |________4.gif
             |________3 (folder)
                      |________1.gif
                      |________2.gif
                      |________3.gif
                      |________4.gif
             |________4 (folder)
                      |________1.gif
                      |________2.gif
                      |________3.gif
                      |________4.gif
             |________5 (folder)
                      |________1.gif
                      |________2.gif
                      |________3.gif
                      |________4.gif

|_________  C2.xml (file)

我想删除文件夹和包含所有文件

fil.delete();

System.out.println("boolean =>" + fil.delete());

但上面的代码显示为false。请帮帮我

l0oc07j2

l0oc07j21#

看看这个

public void deleteRecursive(File fileOrDirectory) {

   if (fileOrDirectory.isDirectory()) {
       for (File child : fileOrDirectory.listFiles()) {
          deleteRecursive(child);
       }
   }

   fileOrDirectory.delete();
 }

用于解释How to delete a whole folder and content?

bq8i3lrv

bq8i3lrv2#

如果子文件夹包含任何文件,则不能删除根文件夹。因此,您必须首先删除每个子文件,然后您将能够删除该文件夹。
你的代码是有效的,我只是更新如下:

boolean deleted = mypath.delete();

例如,mypath是您的文件目录。

xghobddn

xghobddn3#

让我告诉你第一件事你不能删除根文件夹,因为它是一个系统文件夹。当你在手机上手动删除它时,它会删除该文件夹的内容,但不会删除根文件夹。您可以通过以下方法删除其内容:

private void DeleteRecursive(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory())
        for (File child : fileOrDirectory.listFiles())
        {
            child.delete();
            DeleteRecursive(child);
        }

    fileOrDirectory.delete();
}
nnt7mjpx

nnt7mjpx4#

使用Apache commons-io,这只是一行代码。

FileUtils.deleteDirectory(getAlbumStorageDir(directoryName));
9gm1akwq

9gm1akwq5#

对于Kotlin,使用Kotlin's standard extension

File.deleteRecursively()

相关问题