【问题标题】:Error while copying files from source to destination java将文件从源复制到目标java时出错
【发布时间】:2013-10-22 19:21:50
【问题描述】:
//original file
Path original = Paths.get("C:\\Users\\Laksahan\Desktop\\bg.jpg"); 
File f = new File("C:\\Users\\Laksahan\\Desktop\\bg.jpg");

// new file
Path destination = Paths.get("C:\\Program Files\\Tour v0.1\\image\\"+f.getName()); 
try {
   Files.copy(original, destination, LinkOption.NOFOLLOW_LINKS);
} catch (IOException x) {
   x.printStackTrace();
}

我尝试了上面的方法来复制文件,它不会工作,它会打印这个错误

java.nio.file.NoSuchFileException: C:\Users\Laksahan\Desktop\bg.jpg -> C:\Program Files\Tour v0.1\image\bg.jpg

请帮忙

【问题讨论】:

  • 我尝试了同样适用于我的代码。由于您是在 Program Files 的 C 盘中执行此操作,因此可能存在权限问题。
  • @Mukesh S 我确实在 C:\\ 上检查过它,但它说同样的错误
  • @Mukesh 它在 D: 驱动器上工作

标签: java nio


【解决方案1】:

Java 7的NIO在使用时不会创建文件夹如果不存在Files.copy().

您可以做的最好的事情是在调用copy 之前检查该文件夹并在它不存在时创建它。

【讨论】:

    【解决方案2】:

    试试

    Path original = Paths.get("C:\\Users\\Laksahan\\Desktop\\bg.jpg");
    

    而不是

    Path original = Paths.get("C:\\Users\\Laksahan\Desktop\\bg.jpg"); 
    

    例如以编程方式创建文件夹-

    Path from = Paths.get("C:\\Users\\Laksahan\\Desktop\\bg.jpg"); 
    Path to = Paths.get("C:\\Program Files\\Tour v0.1\\image\\"); 
    Path destination;
    
    File f = new File("C:\\Users\\Laksahan\\Desktop\\bg.jpg");
    
    if (!Files.exists(to)) {
       try {
          Files.createDirectories(to);
       } catch (IOException ioe) {
          ioe.printStackTrace();
       }
    
       destination = Paths.get(to.toString() + "\\" + f.getName());
       try {
          Files.copy(from, destination, LinkOption.NOFOLLOW_LINKS);
       } catch (FileAlreadyExistsException faee) {
          faee.printStackTrace();
       } catch (IOException ioe) {
           ioe.printStackTrace();
       }
    }
    

    【讨论】:

    • 这可能只是一个错字。 \D 不是有效的转义序列,因此代码不会编译。
    猜你喜欢
    • 2021-12-07
    • 2016-04-24
    • 1970-01-01
    • 2012-12-01
    • 2017-03-31
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多