【问题标题】:Files.copy(src, dst) throws NoSuchFileExceptionFiles.copy(src, dst) 抛出 NoSuchFileException
【发布时间】:2016-02-28 13:31:18
【问题描述】:

程序:

    import java.io.IOException;    
    import java.nio.file.*;    
    import java.io.*;

    public class Copier {
      public static void main(String[] args) 
        {
            try
            {

                File src = new File("C:\\Users\\k\\Desktop\\sandeep.txt");

                File dstn = new File("C:\\Users\\k\\Desktop\\sandeep1.txt");

                Files.copy(src.toPath(), dstn.toPath());

            }
            catch(IOException e) {
                System.out.println(e.toString());
            }
        }

    }

在我的桌面上,sandeep.txt 存在,而 sandeep1.txt 不存在。我有一些用sandeep.txt 编写的文本,我想复制到sandeep1.txt(在创建之后)。但是当我尝试这样做时,它会抛出异常:java.nio.file.NoSuchFileException: C:\Users\k\Desktop\sandeep1.txt

有人问过这个问题,但仍然没有答案,所以我再次问这个问题。提前非常感谢您!

编辑:一开始我尝试了 Files.copy(src, dstn) 但它没有用所以我尝试了 Files.copy(dstn, src) 但它仍然没有用。在这里发帖时,我忘了把它改回来。现在我已经纠正了。请再看看。

已解决:我在创建文件时犯了一个错误。我创建了一个新的文本文件并将其命名为 sandeep.txt。所以实际上这个文件的名字是sandeep.txt.txt。我为自己犯了这个错误而感到尴尬,但我会记住很长时间。非常感谢你们付出了宝贵的时间。

【问题讨论】:

  • 使用 Paths.get() 代替 file.toPath()...
  • Files.copy(src,dtn) - 这是源,目标。
  • @SKG,我们应该更加努力地了解标准库。在这种特殊情况下要记住的一个技巧是将其比作 Unix cp 命令。另一个(非常)好的做法是命名您的变量,以便它们记录您的意图(例如,使用 srcdest 而不是 p1p2)。

标签: java file copy java-io java.nio.file


【解决方案1】:

janos 是正确的,您的订单错误。但是,您可以提供第三个 java.nio.file.CopyOptions 参数和几个选项,默认值可以在 java.nio.file.StandardCopyOption 中找到。

常见情况如下:

Files.copy(p1.toPath(), p2.toPath(), StandardCopyOption.REPLACE_EXISTING);

【讨论】:

  • 您好 pczeus,我只是在询问时打错了。现在我在这里正确地编辑了它。两种方式似乎都不起作用。我尝试了第三个参数,但仍然没有运气。
  • 尝试改变你的路径让'\`走另一条路。只需使用'/'。所以,例如:“C:/Users/k/Desktop/sandeep.txt”
  • 我在本地运行了这个,它工作......只要 src 文件存在。
  • 我在创建文件时犯了错误。我将它命名为sandeep.txt 而不仅仅是sandeep。感谢您的宝贵时间
  • 我仍然需要获得更多声望才能接受答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 2016-10-13
相关资源
最近更新 更多