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

上一个文件删除过程

唐兴思
2023-03-14

我遇到了一个奇怪的情况,即我正在文件夹中创建一个文件,但我需要确保在创建文件之前,如果文件夹中有任何文件,则必须将其删除,只有当前正在处理的文件应该在那里。

因为在我的应用程序中,每天都会运行一个作业,该作业会在该文件夹中创建文件,所以当当前作业运行时,它应该删除前一天的文件,并且文件夹中不应该有任何文件,但下面显示的代码会在该文件夹中创建文件,但问题是前一天的文件,或者如果作业在同一天运行多次,那么这些文件也会在该文件夹中哪些应该删除请建议如何实现这一点。。

File file = new File(FilePath + s); //path is c:\\abc folder & s is file name fgty.dat file         
if (file.exists()) {
  file.delete(); 
}
file.createNewFile();

请告知

共有3个答案

陶博涉
2023-03-14
File file = new File(FilePath+"test.txt");
File folder = new File(FilePath);
File[] listOfFiles = folder.listFiles();

for(int i = 0; i < listOfFiles.length; i++) {
    if (listOfFiles[i].isFile()) {
        System.out.println("File " + listOfFiles[i].getName());
        listOfFiles[i].delete();
    }
}
    try {
        file.createNewFile();
    } catch (IOException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
秦钟展
2023-03-14

在没有看到更多代码的情况下,听起来您只需要在打开新文件之前清空文件夹,因为现在您只需要删除具有您要编写的确切名称的文件。使用文件对象的列表方法。

File newFile = new File(FilePath + s);
for (File f : new File(FilePath).listFiles()) { // For each file in the directory, delete it.
    f.delete();
}
newFile.createNewFile();

请注意,如果您的文件夹包含其他非空目录,这将不起作用;您需要一个更健壮的解决方案。但是上面的代码至少会在创建新文件之前删除文件夹中的所有文件(显然除了例外)。

如果如您在评论中提到的,您只想删除*. dat文件,那么在删除任何内容之前进行检查就像这样简单。

for (File f : new File(FilePath).listFiles()) { // For each file in the directory, delete it.
    if (f.getName().endsWith(".dat")) { // Only delete .dat files
        f.delete();
    }
}
欧阳学真
2023-03-14

在你的位置上,我会将目录移到另一个名称,比如abc。旧的,重新创建它,然后创建文件。如果一切顺利,最后可以删除ols目录。

如果程序的不同实例可以同时运行,则需要实现某种形式的同步。一种相当简单的方法可能是检查abc。旧目录存在,如果存在,则中止执行。

 类似资料:
  • 问题内容: 我刚刚在android应用程序中编写了一个函数,该函数使用Java中的标准“文件”类删除文件。即: 尽管上面的过程很简单,但我一直想知道通过“ ContentResolver”执行该操作是否有任何好处。任何意见,将不胜感激。 干杯, 杰瑞德 ------------------------------------------编辑------- 这是通过Content Resolver删

  • 问题内容: 我想从当前目录中的所有文件名中删除 test.extra 但是它抱怨没有找到file.echo是为了确保它正确列出。 问题答案: 首先使用“ sed -e”代替“ \ e” 我建议您用bash这样做

  • 问题内容: 我是React.js的新手,因此非常感谢您的帮助。 我有这个:http : //jsfiddle.net/rzjyhf91/ 其中我做了两部分:图像和按钮。 目的是通过单击按钮来删除图像,我为此使用了它,但是它不起作用: 如何从另一个组件中删除反应组件? 问题答案: 好吧,看来您应该重新考虑显示控件的处理方式。React只是关于孤立的组件,因此,您不应该卸载由父组件安装的组件。相反,您

  • 我用的是log4j2.14。1. 我想做的是有一个appender,它允许我每天有一个日志文件,但在N天后删除旧的日志(例如,我希望最多有10天的日志)。 我尝试过使用DirectWriteRolloverStrategy,它看起来不错,每天创建一个日志文件,但显然无法删除旧文件,因此我的日志目录中充满了日志;maxFiles属性似乎只设置了与文件模式匹配的时间段内允许的最大文件数(请参见http

  • 本文向大家介绍如何使用python删除一个文件?相关面试题,主要包含被问及如何使用python删除一个文件?时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 如果文件位于另一个目录中,如何使用PHP从服务器中删除文件? 这是我的页面布局: (此文件将删除我对数据库的所有条目,并且还应删除相关文件) (文件所在的位置。) 我正在使用的功能: 但这总是给我一个错误,该文件不存在。有任何想法吗? 问题答案: 以下应该有帮助 —返回规范化的绝对​​路径名 —告诉文件名是否可写 —删除文件 通过realpath运行文件路径,然后检查返回的路径是否可写