欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java renameTo的抽风不管用现象

程序员文章站 2022-04-22 13:44:00
...

windows10开发环境,renameTo一直好使。

linux centos6,renameTo就一直不好使。

问题排查:1.如果有重名的文件夹,会导致renameTo失败,所以先查renameTo的目标文件夹是否已经存在

                  2.如果第一中情况不存在,然后网上的各种解决办法都无法解决,commons.io下的fileutils里的也可以实现和renameTo相同的功能,代码如下

File resFile = new File(sourcePath);
File newFile = new File(targetPath);
if (!resFile.renameTo(newFile)) {  //如果renameTo不成功
                                                                
   System.out.println("renameTo from 
      sourcePath =" + sourcePath + " to targetPath=" + targetPath + "failed!");
   try{                                    	    
      org.apache.commons.io.FileUtils.moveDirectory(resFile, newFile); //commons-io
   }catch(Exception e){
      System.out.println("moveDirectory from sourcePath =" + sourcePath + " to targetPath=" + targetPath);
      result= false;   //如果两次都失败了,则返回false
   }
}

基本上就解决了renameTo的不定时抽风问题。

相关标签: 后台