FileVisitor替换现有文件

时间:2017-05-21 09:00:32

标签: java filevisitor filewalker

我需要将文件从一个目录替换到另一个目录。我在网上搜索过,我找到了有效的解决方案来替换文件。我正在使用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 个答案:

答案 0 :(得分:0)

您的问题是两个文件名相同,您认为是一个文件。在java文件中不同于扩展名。 这样做时可能需要检查相同的文件名。