将所有文件从源复制到目标 Java
Copy all files from Source to Destination Java
我必须编写一个 java 方法 public void public void copyTo(Path rSource, Path rDest) 将所有文件从现有目录 rSource 复制到新目录 rDest同名。 rSource 必须存在且 rDest 不能存在,如果不为真则运行时异常。我似乎无法让它工作,帮助!
我尝试了什么:
public void copyTo(Path rSource, Path rDest){
if(!(Files.exists(rSource) && Files.isDirectory(rSource)) || (Files.exists(rDest))){
throw new RuntimeException();
}
try {
Files.createDirectory(rDest);
if(Files.exists(rDest)){
try(DirectoryStream<Path> stream = Files.newDirectoryStream(rSource)) {
for(Path p : stream) {
System.out.println(p.toString());
Files.copy(p, rDest);
}
} catch( IOException ex) {
}
}
} catch (IOException e) {
}
}
Files.copy() 至少需要两个参数,源和目标文件路径或流。您遇到的问题是您传递的是 rDest 文件夹路径,而不是实际的文件路径。只需修改 for 循环中的代码,将文件名从源附加到目标文件夹路径:
Path newFile = Paths.get(rDest.toString() + "/" + p.getFileName());
Files.copy(p, newFile);
如有错误请指正
我必须编写一个 java 方法 public void public void copyTo(Path rSource, Path rDest) 将所有文件从现有目录 rSource 复制到新目录 rDest同名。 rSource 必须存在且 rDest 不能存在,如果不为真则运行时异常。我似乎无法让它工作,帮助!
我尝试了什么:
public void copyTo(Path rSource, Path rDest){
if(!(Files.exists(rSource) && Files.isDirectory(rSource)) || (Files.exists(rDest))){
throw new RuntimeException();
}
try {
Files.createDirectory(rDest);
if(Files.exists(rDest)){
try(DirectoryStream<Path> stream = Files.newDirectoryStream(rSource)) {
for(Path p : stream) {
System.out.println(p.toString());
Files.copy(p, rDest);
}
} catch( IOException ex) {
}
}
} catch (IOException e) {
}
}
Files.copy() 至少需要两个参数,源和目标文件路径或流。您遇到的问题是您传递的是 rDest 文件夹路径,而不是实际的文件路径。只需修改 for 循环中的代码,将文件名从源附加到目标文件夹路径:
Path newFile = Paths.get(rDest.toString() + "/" + p.getFileName());
Files.copy(p, newFile);
如有错误请指正