Java重命名问题

时间:2013-09-24 07:46:51

标签: java

我有以下代码来移动失败的文件:

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

然后它有效。任何人都有任何线索,为什么它表现如此?

由于

3 个答案:

答案 0 :(得分:2)

在java Doc

中阅读File.renameTo方法
  

此方法行为的许多方面都是固有的   依赖于平台:重命名操作可能无法移动   从一个文件系统到另一个文件系统的文件,它可能不是原子的,它   如果文件具有目标抽象路径名,则可能不会成功   已经存在。应始终检查返回值以确保   重命名操作成功。

你可以使用apache的FileUtils.moveFile

答案 1 :(得分:0)

这些是我想到的原因(在Windows机器上):

  1. 源文件不存在。
  2. 目标目录不存在(不会自动创建)。
  3. 目标文件名已存在
  4. 您无权写入目标目录

答案 2 :(得分:0)

当然。 '\'是java String中的特殊字符(例如\ n是新行,\ u041f是某些Unicode字符)。如果你想使用'\',你应该把'\\'放在你的String