FileVisitor для замены существующих файлов

Мне нужно заменить файл из одного каталога в другой каталог. Я искал в сети, и я нашел эффективное решение для замены файлов. Я использую Files.walkFileTree, чтобы пройти каталог и заменить файл. Перед заменой файла я проверяю, существует ли файл в целевом каталоге. Если файл существует, мне нужно заменить новый файл тем же именем. Но в моем случае имя моего файла из исходного каталога будет таким же, и будет отличаться только формат файла.

я использую

Files.copy(sourcefile,targetfile,REPLACE_EXISTING);

Приведенный выше код заменяет файл в целевой директории, только если имя файла и формат совпадают. В противном случае он не удаляет старый файл, а не помещает новый файл и старый файл в целевой каталог.

Original Directory 
Source Folder                Target Folder
 a.pdf                          a.txt 
 b.pdf                          b.txt

After running Files.copy
Source Folder                 Target Folder

a.pdf                          a.txt
b.pdf                          b.txt
                               a.pdf
                               b.pdf

But i need to replace Target Folder as

Target folder
(should replace .txt file and i need only .pdf files)
a.pdf
b.pdf

1 ответ

Ваша проблема - два имени файла, и вы думаете, что это файл. В Java-файл отличается от расширения. Может быть, вам нужно проверить то же имя файла при выполнении.

Другие вопросы по тегам