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

解决方案 »

  1.   


    //可能我人品比较好,一试就成功
    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.
      

  2.   

    应该报的是SecurityException异常吧。
      

  3.   

    http://www.iteye.com/topic/149328这个你参考下不成功也就那么几种原因
    话说我用这个重来就没失败过。
      

  4.   

    建议楼主把代码贴出来
    有可能是对API的调用不对,还有重命名的代码是否是在同一个盘下,重命名的路径是否有写的权限
      

  5.   

    http://topic.csdn.net/u/20110823/17/bd79fd3d-fd2a-4985-8594-26fee798c077.html?seed=493670338&r=75127320#r_75127320
      

  6.   

    我做过很多实验过后,发现renameTo()方法的新文件名称中不能还有任何符号包括(“ ”,“_”,“:”),只要去掉文件名中的符号就可以了。
      

  7.   

    API中没有写清这些要求。搞得我以为是我代码有问题。
      

  8.   

    这个不是API的问题,这些命名规则跟操作系统有关系。
      

  9.   

    不是不能有任何符号,而是不能有非法符号。空格,下划线都是可以做文件名的。但:在windows下就是非法的
      

  10.   

      这个问题,牵涉到排错的思想方法问题。记得以前有人提到,网络排障,要最小化问题。最小化,要电脑与网络的硬软件逐步减少,或一次性减到最小,再逐步增加。比如上不了网,先试最简单、最基本的环境能否上,如不,可能是网卡、网线的问题。
      同理,java程序文件改名,先试最简单的"a"文件改成"b",可,再加其它符号,再加中文。最简单的 a文件改名失败,那它是最小环境吗?再继续最小化,用最初始的java环境(命令行下编译、自己重新设环境变量等等),最基本的系统去试,或网上复制一段正确的代码测试。
      

  11.   

    我也遇到rename失败的情况了 就是不知道哪里的问题 直接用main方法测试时没有问题,一旦放到自己的java web项目中就出现问题了 代码是直接copy过去的 ,至今不知道怎么解决