java file.renameTo() 方法失败为什么?修改文件名失败。。。急在线。 5
我就是想修改下文件的名称,结果用了这个方法发现失败。。。刚测试了下,是放在循环下修改文件名,可能是循环速度太快?导致文件名修改的时候有问题,打断点,慢点过去就没问题。...
我就是想修改下文件的名称,结果用了这个方法发现失败。。。
刚测试了下,是放在循环下修改文件名,可能是循环速度太快?导致文件名修改的时候有问题,打断点,慢点过去就没问题。 展开
刚测试了下,是放在循环下修改文件名,可能是循环速度太快?导致文件名修改的时候有问题,打断点,慢点过去就没问题。 展开
7个回答
展开全部
我建议你:
1 File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一个copy方法,问题倒是再也没有出现过。
2.我给你大个比方0--------
从C盘到E盘失败了,从C盘到D盘成功了。因为我的电脑C、D两个盘是NTFS格式的,而E盘是FAT32格式的。所以从C到E就是上面文章所说的"file systems"不一样。从C到D由于同是NTFS分区,所以不存在这个问题,当然就成功了。
-----你可以试试这个:
/**
* 使用FileChannel拷贝文件
*
* @param srcFile
* @param destFile
* @throws IOException
*/
public static void copyUseChannel(File srcFile, File destFile)
throws IOException {
if ((!srcFile.exists()) || (srcFile.isDirectory())) {
return;
}
if (!destFile.exists()) {
createFile(destFile.getAbsolutePath());
}
1 File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一个copy方法,问题倒是再也没有出现过。
2.我给你大个比方0--------
从C盘到E盘失败了,从C盘到D盘成功了。因为我的电脑C、D两个盘是NTFS格式的,而E盘是FAT32格式的。所以从C到E就是上面文章所说的"file systems"不一样。从C到D由于同是NTFS分区,所以不存在这个问题,当然就成功了。
-----你可以试试这个:
/**
* 使用FileChannel拷贝文件
*
* @param srcFile
* @param destFile
* @throws IOException
*/
public static void copyUseChannel(File srcFile, File destFile)
throws IOException {
if ((!srcFile.exists()) || (srcFile.isDirectory())) {
return;
}
if (!destFile.exists()) {
createFile(destFile.getAbsolutePath());
}
参考资料: 来源:考试大-计算机二级考试
展开全部
rename方法应该是异步的,线程不安全,所以上一个还没修改完成你就循环修改下一个了。要么就在循环里重新new一个file对象吧。当然这只是我的猜测。rename方法是不是异步的我也不知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
renameTo方法应该是调用系统本地方法的,所以你要循环调用,就需要给它反应时间
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-08-15
展开全部
public boolean renameTo(File dest) renanemTo 里的参数应该是File类型 boolean success = file.renameTo(new File(dir,file.getName()));//这里的new File(dir,file.getName())只是个参数可以这样改
File file2 = new File(dir,file.getName());boolean success = file.renameTo(file2);//里边不一定要new,是个File类型的就行
File file2 = new File(dir,file.getName());boolean success = file.renameTo(file2);//里边不一定要new,是个File类型的就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-07-22
展开全部
在循环更改名字那sleep一会.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询