java - 在java中将文件从一个目录复制到另一个目录会抛出NoSuchFileException

标签 java

我有一个字符串哈希集,它们是我想要从工作目录复制到“路径”目录的文件的名称。我发现下面的代码应该可以工作,但是,我收到一个 java.nio.file.NoSuchFileException:/commits/1/hello.txt 异常。

  Hashset<String> stagedQueue = HashSet<String>();
    stagedQueue.put("hello.txt");
    stagedQueue.put("bye.txt");


String path = "/commits/" + commitID;

                for (String file : stagedQueue) {
                    Files.copy((new File(file).toPath()), 
                        (new File(path + "/" + file).toPath()));

我可以做什么来解决这个问题?我不明白为什么我会遇到这些异常(exception)。请注意,我正在将它们移动到一个空目录中。

最佳答案

不要遍历文件;你使用java.nio.file。

这里的问题是您尝试将初始文件复制到尚不存在的目录中:

String path = "/commits/" + commitID;

首先,这是目标目录,因此将其称为dstdir。然后创建基目录并将文件复制到其中:

final Path basedir = Paths.get("/commits", commitId);

Files.createDirectories(basedir);

for (final String file: baseQueue)
    Files.copy(Paths.get(file), basedir.resolve(file));

关于java - 在java中将文件从一个目录复制到另一个目录会抛出NoSuchFileException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29551815/

相关文章:

java - 在Java中,全局记录器和根记录器有什么区别?

Java 开发套件与 Minecraft 1.8.9 Forge Modding,需要什么 JDK/JRE,代码是否正确?

java - java中的合并数组

java - Netty 双向和 n 客户端 UDP

java - 转换后的纬度/经度值中的小数位数(使用 Location.convert 方法)

java - 空输入的打印错误

java - 如何通过代码向 Facebook 好友发送电子邮件或消息

java - 如何从 java.lang.Process 适当关闭 std-streams?

java - 使用java进行语音聊天,双向通信,低延迟

java - 如何将 Icon 放置在 JPanel 的顶部和底部