//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
请帮助
答案 0 :(得分:11)
如果使用 Files.copy()
时,Java 7的NIO 将不会创建文件夹。
您可以做的最好的事情是检查文件夹,如果它不存在则创建它,然后再拨打copy
。
答案 1 :(得分:4)
尝试
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();
}
}
答案 2 :(得分:0)
我不确定您的工作环境,但如果它比Windows-XP更新,除了安装程序服务之外,任何人都无法访问位置"C:\\Program Files\\"
,或者除非您通过安全设置明确提供权限。
您尝试复制到任何其他位置。它应该工作