日期:2014-05-20  浏览次数:20876 次

郁闷的是用java这么久了,居然file.renameTo()方法没有成功一次
无论实在公司开发机器上,还是在自己个人机器上,试验使用file.renameTo()方法对文件进行重命名,都会失败,没有一次成功过,不知到JDK API中为什么会有这样的方法存在,奶奶的。网上也有很多人遇到我同样的问题。


有谁能解释下原因不?

------解决方案--------------------

//可能我人品比较好,一试就成功
import java.io.*;

public class TestRenameTo {
    public static void main(String[] args) {
File filea = new File("c:/a.dat");
if (filea.renameTo(new File("c:/a_backup.dat")))
    System.out.println("rename successful");
else
    System.out.println("rename fail");
try {
    Process process = Runtime.getRuntime().exec("cmd ava -version");
    BufferedReader bufferedReader = new BufferedReader(
    new InputStreamReader(process.getInputStream()));
    String line = null;
    while ((line = bufferedReader.readLine()) != null)
System.out.println(line);
} catch (IOException e) {
    e.printStackTrace();
}
    }
}



// 结果:
rename successful
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

------解决方案--------------------
这个不是API的问题,这些命名规则跟操作系统有关系。
引用:
我做过很多实验过后,发现renameTo()方法的新文件名称中不能还有任何符号包括(“ ”,“_”,“:”),只要去掉文件名中的符号就可以了。