【问题标题】:Copy all files from Source to Destination Java将所有文件从源 Java 复制到目标 Java
【发布时间】:2021-12-07 10:37:51
【问题描述】:

我必须编写一个 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) {
    }
}

【问题讨论】:

  • 欢迎来到 Stack Overflow。我强烈建议您使用 tour 了解 Stack Overflow 的工作原理并阅读 How to Ask。这将帮助您提高问题的质量。 对于每个问题,请显示您尝试过的尝试以及您从尝试中得到的错误消息。

标签: java directory path copy


【解决方案1】:

Files.copy() 至少需要两个参数,源文件路径和目标文件路径或流。您的问题是您正在传递 rDest 文件夹路径,而不是实际的文件路径。只需修改 for 循环中的代码,将文件名从源附加到目标文件夹路径:

Path newFile = Paths.get(rDest.toString() + "/" + p.getFileName());
Files.copy(p, newFile);

如果我错了,请纠正我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多