【问题标题】:Delete old files before adding new files in directory java without using FileUtils [duplicate]在不使用 FileUtils 的情况下在目录 java 中添加新文件之前删除旧文件 [重复]
【发布时间】:2018-11-21 09:37:51
【问题描述】:

我每天都将新文件写入目录。

BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\difftest\\newfiles\\"+decisionList.get(i)+"_"+i+".txt"));

在创建新文件之前,我想删除文件夹中存在的先前添加的文件。并且以前的文件不会被新文件覆盖,因为文件名不同。我怎样才能做到这一点?

【问题讨论】:

  • 您要删除该目录中的所有文件还是只删除名称遵循特定模式的文件?
  • 如果您希望目录为空,请列出目录中的文件并将其全部删除。否则,您还需要某种文件名匹配。
  • @RobertKock 我想删除所有文件,即在执行 bufferedWriter 之前清空整个目录。
  • 您可以删除该目录,重新创建并保存新文件。
  • @htpvl 你能告诉我你将如何删除目录(里面有文件)吗?

标签: java file bufferedwriter


【解决方案1】:

您可以使用这一行代码从给定目录中删除所有现有文件,

Arrays.asList(new File("C:\\difftest\\newfiles").listFiles()).stream().forEach(File::delete);

所以,只需将这行代码放在 BufferedWriter 行之前,就像这样,

Arrays.asList(new File("C:\\difftest\\newfiles").listFiles()).stream().forEach(File::delete);
BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\difftest\\newfiles\\"+decisionList.get(i)+"_"+i+".txt"));

【讨论】:

  • 感谢@Pushpesh 成功了:)
  • 很高兴帮助 Richa :) 它表明你接受了我的回答,然后突然间我发现它没有被接受。有什么理由吗?你觉得我的解决方案不够好?
  • 不小心点击了两次接受图标。
【解决方案2】:

以下代码可能会有所帮助。

(这只是你可以做什么的想法,我不确定错误。)

public class rename 
{ 
    public static void main(String[] argv) throws IOException 
    { 
         // Path of folder where files are located 
         String folder_path = 
           "C:\\Users\\Anannya Uberoi\\Desktop\\myfolder"; 

         // creating new folder 
         File myfolder = new File(folder_path); 

         File[] file_array = myfolder.listFiles(); 
         for (int i = 0; i < file_array.length; i++) 
         { 

            if (file_array[i].isFile()) 
            { 

                File myfile = new File(folder_path + 
                     "\\" + file_array[i].getName()); 
                myfile.delete(); 
            } 
        } 
    } 
} 

【讨论】:

  • 谢谢,@hamid 这对我有用。
猜你喜欢
  • 2021-02-04
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 2014-10-13
  • 2017-06-05
  • 2013-07-12
  • 1970-01-01
  • 2017-07-31
相关资源
最近更新 更多