1

我知道创建和删除目录的基本语法。我处于一个奇怪的情况,所以任何帮助都会非常有帮助。

我创建的目录如下所示:

if (!dir.exists()) {
   dir.mkdir();
}
else 
   System.out.println("hfuiwedsjcz");

我创建了一个目录,在该目录中我有多个文件。我写入这些文件并对目录中的文件执行多项操作。
我想写一个程序来创建目录,比如目录在我写完里面的文件之后就被删除了(以免手动删除文件夹)。

我假设这是一个递归过程,我首先创建文件夹然后删除它。现在当我下次运行时,我不应该有任何文件夹,而是应该再次创建并最终删除。

我该怎么做?

4

3 回答 3

6

一种选择是使用类中的deleteOnExit()方法File。在创建它们时在每个目录和文件上调用它。

当 JVM 以您注册文件的相反顺序存在时,它将删除文件。

if (!dir.exists()) {
   dir.mkdir();
   dir.deleteOnExit();
}

// etc...
于 2013-07-16T14:28:44.533 回答
1

假设该目录将被创建一次并且在每次运行时,最后您只需清理目录(清空目录)如何?这可能会帮助您:

FileUtils.clean 目录

或者如您所愿,您可以选择:

FileUtils.forceMkdir()

最后:

FileUtils.deleteDirectory()

FileUtils.forceDeleteOnExit()

这与其他人的回答类似,但如果您使用的是 jdk 1.6 而不是 1.7,这将是更简单的方法(不幸的是,很多人仍在使用 1.6)

于 2013-07-16T14:29:22.197 回答
0

java.io.File.deleteOnExit()在每个创建的 File 对象上使用。您需要从第一个目录开始,为每个使用的File对象创建并调用它。

于 2013-07-16T14:31:58.860 回答