最近,公司的服务器 迁移到 云服务器上,出现了 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
分享到:
相关推荐
以前我一直以为File#renameTo(File)方法与OS下面的 move/mv 命令是相同的,可以达到改名、移动文件的目的。不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来...
Better File Rename 5.7 绿色汉化版 Better File Rename 是一款强大易用的文件批量改名软件。内置最全面的重命名选项。 现已支持64位操作系统。 5.7 英文原版更新说明: ① 添加了 PDF 格式的用户手册 ② 在所有...
Better File Rename 好用的文件重命名工具
Better File Rename文件重命名工具,功能强大,各种重命名。 适合文件处理各种使用。
Better File Rename 是一款WINDOWS 资源管理器的扩展外壳,可以帮助你快速简便的修改文件名和文件修改时间,可以分别处理文件名和扩展名。
Quick File Rename 批量修改文件后缀,功能简单,但很实用。个人认为比那些体积庞大的工具要好用的多。
是一款WINDOWS资源管理器的扩展外壳,可以帮助你快速简便的修改文件名和文件修改时间,可以分别处理文件名和扩展名。 一款WINDOWS资源管理器的扩展外壳, 可以帮助你快速简便地修改文件名和文件修改时间。...
本不该要分 但我下载缺分 没办法,大家多支持逸云科技!谢谢 一款WINDOWS资源管理器的扩展外壳, 可以帮助你快速简便地修改文件名和文件修改时间。功能有:强大的命名方式,文字、日期和序列数字的添加、去除、插入和...
批量重命名 綠色 file rename
在Linux系统中修改文件名可以用mv命令,但是它只能对单个文件进行操作,如要要批量执行还要写shell脚本,用for语句迭代执行,不过Linux中另外一个命令支持批量替换文件名,它是rename,rename支持正则表达式匹配。...
Batch File Rename Utility是一个易于使用的文件和批量重命名工具。提供灵活的选择配置的规则,可以组合和堆叠。Batch File Rename允许你替换字符,删除/添加号码,删除/添加文本,变更,分裂名称等等。该计划提供了...
XML file to rename bulk of files
该程序可以成批次的更改文件名称,代码值得学习研究,编译后,即可执行
本例中修改文件名使用Delphi中自带函数RenameFile来实现,具体用法可参考下述代码: Try RenameFile(Edit1.Text,Edit2.Text); SHowMessage('更改成功'); except ShowMessage('更改失败'); end;
基于上一个版本修正: 1、正则修正忽略大小写,支持E/EP/Ep/e/ep/eP等 2、支持百集以上电视剧,并自动在单数补0,如100集电视剧,第一集表示为001
log4j:ERROR Failed to rename错误解决办法 http://www.blogjava.net/DreamAngel/archive/2011/11/10/363400.html
这是一个打开文件实例,讲述了几个文件函数以及字符串函数的用法,有点乱
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
python笔记源码,凑字数:请支持我请支持我请支持我请支持我