`

File renameTo() 在Linux OS的 bug

阅读更多
    最近,公司的服务器 迁移到 云服务器上,出现了 web应用系统 的tomcat报错日志信息。
参看日志显示  程序指定的目录文件写入失败,进一步参看源代码:

   File.renameTo(File f);


定位到此方法,目标文件未写入成功, 经查是由 File.renameTo 方法 对 Linux系统的 文件存放目标目录格式为 NFS 不支持 导致(原服务器文件格式为 ext3 是可以的,云服务器的目录格式为 NFS,源码、JDK 和其他配置都未变)。

改用: org.apache.commons.io.FileUtils


import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;

public class FileTest {

	
	public  static void main(String[] args) throws IOException{		
		
		File sourceFile = new File("C:/Desktop/timg.jpg");
		File targetFile = new File("D:/.m2/timg1.jpg");
		
		//复制文件
		FileUtils.copyFile(sourceFile, targetFile);
		
		//移动文件到指定目录
		FileUtils.moveFile(sourceFile, targetFile);
		
//		File f = new File("C:/Users/Administrator/Desktop/timg.jpg");
//		f.deleteOnExit();
	}
	
}




所以当遇到 多文件系统 的时候,请尽量避免使用File.renameTo(File)方法,可是使用apache的commons-io包去替换,避免一些潜在BUG。

参考:
https://blog.csdn.net/findmyself_for_world/article/details/41648095
分享到:
评论

相关推荐

    请慎用java的File#renameTo(File)方法

    以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来...

    Better File Rename 绿色汉化版

    Better File Rename 5.7 绿色汉化版 Better File Rename 是一款强大易用的文件批量改名软件。内置最全面的重命名选项。 现已支持64位操作系统。 5.7 英文原版更新说明: ① 添加了 PDF 格式的用户手册 ② 在所有...

    Better File Rename 好用的文件重命名工具

    Better File Rename 好用的文件重命名工具

    Better File Rename文件重命名工具

    Better File Rename文件重命名工具,功能强大,各种重命名。 适合文件处理各种使用。

    Better File Rename v5.7

    Better File Rename 是一款WINDOWS 资源管理器的扩展外壳,可以帮助你快速简便的修改文件名和文件修改时间,可以分别处理文件名和扩展名。

    Quick File Rename 1.2

    Quick File Rename 批量修改文件后缀,功能简单,但很实用。个人认为比那些体积庞大的工具要好用的多。

    Better File Rename 4.9.4

    是一款WINDOWS资源管理器的扩展外壳,可以帮助你快速简便的修改文件名和文件修改时间,可以分别处理文件名和扩展名。 一款WINDOWS资源管理器的扩展外壳, 可以帮助你快速简便地修改文件名和文件修改时间。...

    Better File Rename 个人珍藏 批量文件重命名利器

    本不该要分 但我下载缺分 没办法,大家多支持逸云科技!谢谢 一款WINDOWS资源管理器的扩展外壳, 可以帮助你快速简便地修改文件名和文件修改时间。功能有:强大的命名方式,文字、日期和序列数字的添加、去除、插入和...

    Better File Rename

    批量重命名 綠色 file rename

    Linux中用rename命令批量替换文件名方法实例

    在Linux系统中修改文件名可以用mv命令,但是它只能对单个文件进行操作,如要要批量执行还要写shell脚本,用for语句迭代执行,不过Linux中另外一个命令支持批量替换文件名,它是rename,rename支持正则表达式匹配。...

    Batch File Rename(批量重命名工具)V0.6.3906.19827免费版

    Batch File Rename Utility是一个易于使用的文件和批量重命名工具。提供灵活的选择配置的规则,可以组合和堆叠。Batch File Rename允许你替换字符,删除/添加号码,删除/添加文本,变更,分裂名称等等。该计划提供了...

    FileNameChanger_RenameFile_

    XML file to rename bulk of files

    rename file

    该程序可以成批次的更改文件名称,代码值得学习研究,编译后,即可执行

    Delphi RenameFile修改文件名范例.rar

    本例中修改文件名使用Delphi中自带函数RenameFile来实现,具体用法可参考下述代码:  Try  RenameFile(Edit1.Text,Edit2.Text);  SHowMessage('更改成功');  except  ShowMessage('更改失败');  end;

    rename_file_v1.1.zip

    基于上一个版本修正: 1、正则修正忽略大小写,支持E/EP/Ep/e/ep/eP等 2、支持百集以上电视剧,并自动在单数补0,如100集电视剧,第一集表示为001

    解决log4j:ERROR Failed to rename代码包

    log4j:ERROR Failed to rename错误解决办法 http://www.blogjava.net/DreamAngel/archive/2011/11/10/363400.html

    FILE_fopen_rename_file_

    这是一个打开文件实例,讲述了几个文件函数以及字符串函数的用法,有点乱

    Ben's_File3576422019_hitngm_RenameFile_seldomxyk_

    File Reamer is a small program to allow you to rename multiple files. You may need this program if you need to rename lots of pictures e.g. from a camera

    file_rename.zip

    python笔记源码,凑字数:请支持我请支持我请支持我请支持我

Global site tag (gtag.js) - Google Analytics