如何从内部存储中删除文件夹(包含一些文件夹和文件)? 文件夹下面有一些树。
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。 请帮忙。
看一下这个。
public void deleteRecursive(File fileOrDirectory) { if (fileOrDirectory.isDirectory()) { for (File child : fileOrDirectory.listFiles()) { deleteRecursive(child); } } fileOrDirectory.delete(); }
解释如何删除整个文件夹和内容?
如果子文件夹包含任何文件,则无法删除根文件夹。 因此,您必须先删除每个子文件,然后才能删除该文件夹。
您的代码有效,我只是更新如下:
boolean deleted = mypath.delete();
即。 mypath是你的文件目录。
让我先告诉你,你无法删除Rootfolder,因为它是一个系统文件夹。 当您在手机上手动删除它时,它将删除该文件夹的内容,但不删除Root文件夹。 您可以使用以下方法删除其内容:
private void DeleteRecursive(File fileOrDirectory) { if (fileOrDirectory.isDirectory()) for (File child : fileOrDirectory.listFiles()) { child.delete(); DeleteRecursive(child); } fileOrDirectory.delete(); }
使用Apache commons-io,这只是一行代码。
FileUtils.deleteDirectory(getAlbumStorageDir(directoryName));