gpt4 book ai didi

java - 启动时删除临时文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:56 26 4
gpt4 key购买 nike

我的程序需要一个临时文件夹来在运行时放入数据。程序退出后不再需要此数据,应将其删除。程序的每个运行实例都需要一个自己的文件夹。

如果我使用file.deleteOnExit(),这并不能确保文件在任何类型的崩溃时被删除。因此,我的想法是在启动时检查未删除的旧临时文件并将其删除。但是,当启动程序的另一个实例时,不应删除仍在运行的程序的临时文件。我怎样才能实现这个目标?

更具体地说:临时文件应该位于系统的临时目录中,如果程序正常退出,则应将其删除。这个问题只是针对程序崩溃的那几次。该程序必须独立于操作系统。首选使用 Path 而不是 File 类的解决方案。

最佳答案

嗯,我建议在开始时为每个应用程序创建一个私有(private)目录,其中存储临时文件,例如/var/run/myapp/tmp

并在开始时删除目录内容:

void purgeDirectory(File dir) {
for (File file: dir.listFiles()) {
if (file.isDirectory()) purgeDirectory(file);
file.delete();
}
}

您仍然可以在应用程序退出时自由删除目录内容,但这样,即使在退出时清理没有正确完成,您也肯定在启动时有一个空目录。

关于java - 启动时删除临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43182106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com