将所有文件从源复制到目标 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);

如有错误请指正