Удалите старые файлы перед добавлением новых файлов в каталог java без использования FileUtils

Я ежедневно записываю новые файлы в каталог.

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

Перед созданием новых файлов я хочу удалить ранее добавленные файлы, существующие в папке. И предыдущие файлы не будут заменены новыми, потому что имена файлов другие. Как я могу этого добиться?


person Richa Sharma    schedule 21.11.2018    source источник
comment
Вы хотите удалить все файлы в этом каталоге или только те, имена которых соответствуют определенному шаблону?   -  person Robert Kock    schedule 21.11.2018
comment
Если вы хотите, чтобы каталог был пуст, перечислите файлы в каталоге и удалите их все. В противном случае вам также понадобится какое-то сопоставление имен файлов.   -  person Mark Jeronimus    schedule 21.11.2018
comment
@RobertKock Я хочу удалить все файлы, то есть очистить весь каталог перед выполнением bufferedWriter.   -  person Richa Sharma    schedule 21.11.2018
comment
Вы можете удалить этот каталог, создать его снова и сохранить новые файлы.   -  person Tran Ho    schedule 21.11.2018
comment
@htpvl Можете ли вы сказать, как вы собираетесь удалить каталог (с файлами в нем)?   -  person prasad_    schedule 21.11.2018


Ответы (2)


Вы можете удалить все существующие файлы из данного каталога, используя этот один линейный код,

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"));
person Pushpesh Kumar Rajwanshi    schedule 21.11.2018
comment
спасибо @Pushpesh, это сработало :) - person Richa Sharma; 22.11.2018
comment
Рад помочь, Рича :) Это показало мне, что вы приняли мой ответ, но вдруг я увидел, что он не принят. Есть причины? Вы не нашли мое решение достаточно хорошим? - person Pushpesh Kumar Rajwanshi; 22.11.2018
comment
случайно дважды нажал значок "принять". - person Richa Sharma; 22.11.2018

Следующий код может быть полезен.

(Это просто идея того, что вы можете сделать, и я не уверен в ошибках.)

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(); 
            } 
        } 
    } 
} 
person hamid ghasemi    schedule 21.11.2018
comment
спасибо, @hamid, это сработало для меня. - person Richa Sharma; 22.11.2018