gpt4 book ai didi

java - 将文件从一个目录复制到另一个目录而不进行替换

转载 作者:行者123 更新时间:2023-11-30 03:07:34 25 4
gpt4 key购买 nike

所以我似乎无法找到一种合适的方法将文件从一个目录复制到另一个目录而不覆盖同名的文件。我见过的所有现有的 java 方法都会覆盖现有文件(FileUtils)或抛出异常(Files nio)

例如,如果我有一个如下文件结构:

├───srcDir
│ ├───this.txt
│ ├───hello.txt
│ ├───main.java

├───destDir
│ ├───this.txt

我想复制 hello.txtmain.java 但我不想复制/更新/替换 this.txt

我正在尝试这种方法:

try{
DirectoryStream<path> files = Files.newDirecotryStream(FileSystems.getDefault().getPath(srcDir);
for(Path f : files)
if(Files.notExists(f))
Files.copy(f, Paths.get(targetDir).resolve(f.getFileName()));

}catch(IOException e){
e.printStackTrace();
}

这显然不起作用,因为我只是检查 src 目录中是否不存在 f ,它当然存在,因为那是我从中提取的位置。

我真的很想说if(Files.notExists(f) in target directory)但我不确定这是否可能。

那么这是适当的方法吗?有没有更好的办法?谢谢

最佳答案

一种方法是为目标文件创建一个 File 对象,然后检查它是否存在,例如:

for(Path f : files) {
String targetPath = targetDir + System.getProperty("file.separator") + f.getFileName;
File target = new File(targetPath);
if(!target.exists())
Files.copy(f, Paths.get(targetDir).resolve(f.getFileName()));
}

关于java - 将文件从一个目录复制到另一个目录而不进行替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34363892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com