我有以下代码来移动失败的文件:
public static void someFunction() {
Util.moveFile(new File("C:\\Users\\zumdamam\\workspace\\CareerBuilder\\data\\careerbuilder\\Java.html"), new File("C:\\temp\\Java.html"));
}
public static void moveFile(File src, File dest) {
try {
if (src.renameTo(dest)){
System.out.println("File is moved successful!");
} else{
System.out.println("File is failed to move!");
}
} catch(Exception e){
e.printStackTrace();
}
}
如果参数更改为
C:\\Users\\zumdamam\\workspace\\CareerBuilder\\data\\Java.html
然后它有效。任何人都有任何线索,为什么它表现如此?
由于
答案 0 :(得分:2)
在java Doc
中阅读File.renameTo方法此方法行为的许多方面都是固有的 依赖于平台:重命名操作可能无法移动 从一个文件系统到另一个文件系统的文件,它可能不是原子的,它 如果文件具有目标抽象路径名,则可能不会成功 已经存在。应始终检查返回值以确保 重命名操作成功。
你可以使用apache的FileUtils.moveFile
答案 1 :(得分:0)
这些是我想到的原因(在Windows机器上):
答案 2 :(得分:0)
当然。 '\'是java String中的特殊字符(例如\ n是新行,\ u041f是某些Unicode字符)。如果你想使用'\',你应该把'\\'放在你的String
中