0

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

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

然后它工作。任何人都知道它为什么会这样吗?

谢谢

4

3 回答 3

2

在 java Doc 中读取File.renameTo方法

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

你可以使用 apache 的FileUtils.moveFile

于 2013-09-24T07:58:28.390 回答
0

当然。'\' 是 java String 中的特殊字符(例如 \n 是换行符或 \u041f 是一些 Unicode 字符)。如果你想使用 '\' 本身,你应该把 '\\' 放在你的字符串里面

于 2013-09-24T08:11:50.017 回答
0

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

  1. 源文件不存在。
  2. 目标目录不存在(它不是自动创建的)。
  3. 目标文件名已经存在
  4. 您无权写入目标目录
于 2013-09-24T08:08:06.230 回答