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的不定时抽风问题。
上一篇: 爆笑连续剧:小明滚出去第八季