当前位置: 首页 > 知识库问答 >
问题:

如何使用Java删除包含文件的文件夹

江睿
2023-03-14

我想用Java创建和删除一个目录,但是它不起作用。

File index = new File("/home/Work/Indexer1");
if (!index.exists()) {
    index.mkdir();
} else {
    index.delete();
    if (!index.exists()) {
        index.mkdir();
    }
}

共有3个答案

郑俊美
2023-03-14

这是有效的,虽然跳过目录测试看起来效率低下,但事实并非如此:测试立即在listFiles()中进行。

void deleteDir(File file) {
    File[] contents = file.listFiles();
    if (contents != null) {
        for (File f : contents) {
            deleteDir(f);
        }
    }
    file.delete();
}

更新,以避免以下符号链接:

void deleteDir(File file) {
    File[] contents = file.listFiles();
    if (contents != null) {
        for (File f : contents) {
            if (! Files.isSymbolicLink(f.toPath())) {
                deleteDir(f);
            }
        }
    }
    file.delete();
}
慕光霁
2023-03-14

Java不能删除包含数据的文件夹。在删除文件夹之前,您必须删除所有文件。

使用类似的东西:

String[]entries = index.list();
for(String s: entries){
    File currentFile = new File(index.getPath(),s);
    currentFile.delete();
}

然后,您应该能够使用<code>索引删除文件夹。delete()未测试!

梁建德
2023-03-14

只是一个班轮。

import org.apache.commons.io.FileUtils;

FileUtils.deleteDirectory(new File(destination));

文档在这里

 类似资料:
  • 问题内容: 我想使用Java创建和删除目录,但是它不起作用。 问题答案: Java无法删除其中包含数据的文件夹。您必须先删除所有文件,然后再删除文件夹。 使用类似: 然后,您应该可以使用 Untested 删除文件夹!

  • 问题内容: 我需要使用PHP删除包含内容的文件夹。和删除空文件夹,但无法删除包含内容的文件夹。 问题答案: 此功能将允许您删除任何文件夹(只要可写)及其文件和子目录。 或不递归使用:

  • 我想镜像两个文件夹,但排除某些文件类型(例如js文件)。我可以用 /XF选项来做到这一点。 我遇到的问题是,如果目标文件夹中有一个带有js文件的Foo文件夹,但源文件夹中没有Foo文件夹,那么下面的robocopy命令将删除目标端的Foo文件夹以及其中的js文件。 机器人复制。exe d:\Source d:\Destination/E/PURGE/XF*。js/COPYALL/FFT 我想要的是

  • 问题内容: 我正在尝试通过Linux CLI在文件中查找电子邮件地址的基础上删除错误的电子邮件。 我可以用 但是我无法弄清楚如何从那里删除它们,因为以下代码不起作用。 谢谢您的帮助。 问题答案: 为了安全起见,我通常将find的输出通过管道传送到awk之类的文件,并创建一个批处理文件,每行均为“ rm filename” 这样,您可以在实际运行它之前对其进行检查,并手动修复用正则表达式难以处理的任

  • 问题内容: 我完全没有使用Windows API的经验,所以请原谅我的无知。 我想删除文件到回收站。如何使用JNA做到这一点,以及如何检测是否不可能(例如,由于文件位于网络共享上)? 问题答案: 使用已定义和方法的。

  • 问题内容: 我购买了一个第三方Java库,其中包括一个JAR文件和两个DLL文件。我编写了自己的Java程序,该程序调用了第三方JAR文件。现在我的问题是如何将我的所有代码打包到一个包含所有代码以及第三方JAR和DLL的JAR文件中? 我知道SWT就是这种情况。在包括DLL文件,但我不知道如何做到这一点,以及如何使其正常工作。 问题答案: 只需将其包装在jar中的任何位置即可。不过,你必须记住一件