8
//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

请帮忙

4

2 回答 2

18

Java 7 的 NIO在使用 Files.copy().

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

于 2013-10-22T19:27:27.427 回答
5

尝试

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();
   }
}
于 2013-10-22T19:25:35.463 回答