`
wakin2003
  • 浏览: 67877 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

关于renameTo方法的疑惑

阅读更多
想用java实现一个移动文件的功能,看到api里面说File类有一个renameTo的方法。可以重命名文件,这个操作就相当于移动文件。看起来感觉不错。在使用这个方法时发现了一些问题。
代码如下:
package fileOperation;

import java.io.File;
/**
 * 
 * @author wakin
 *
 */
public class MoveFile {
	/**
	 * 测试移动文件,如果源文件不存在则抛出运行期异常。用renameTo来实现
	 * 文件或目录的移动,true表示操作成功。 
	 * @param source_name
	 * @param dest_name
	 * @return
	 */
	public boolean moveFile(String source_name,String dest_name) {
		File source_file = new File(source_name);
		File dest_file = new File(dest_name);
		if(!source_file.exists())
			throw new RuntimeException("Move: no such file"+source_name);
		return source_file.renameTo(dest_file);
	}

}

我测试环境 OS XP sp2 两个盘。C和D 均是ntfs格式的。
当输入moveFile("c:/1.txt","D:/11.txt")时,通过。
当输入moveFile("c:/1","c:/11")时,通过。
当输入moveFile("c:/1","D:/11")时,失败。
测试多次后发现只要是跨盘移动目录是都是无法通过。查看api,定义如下:
renameTo
public boolean renameTo(File dest)重新命名此抽象路径名表示的文件。
此方法行为的许多方面都是与平台有关的:重命名操作无法将一个文件从一个文件系统移动到另一个文件系统,该操作不是不可分的,如果已经存在具有目标抽象路径名的文件,那么该操作可能无法获得成功。应该始终检查返回值,以确保重命名操作成功。
参数:
dest - 指定文件的新抽象路径名
返回:
当且仅当重命名成功时,返回 true;否则返回 false

疑问:我的两个盘都是ntfs格式的啊,应该不存在跨文件系统的问题,但是为什么不能通过呢?在网上找了半天也没什么解决办法。写在博客里,希望明白的人能赐教。呵呵。
1
0
分享到:
评论
1 楼 Aaron2010 2012-03-15  
我现在也碰到同样的问题,重命名webapps下面的文件夹名称,使用rename有一定的失败率,项自己写一个不实用renameTo方法的文件夹重命名方法

相关推荐

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

    java的file rename方法 ...不过后来经常发现问题:File#renameTo(File)方法会返回失败(false),文件没有移动,又查不出原因,再后来干脆弃用该方法,自己实现一个copy方法,问题倒是再也没有出现过。

    linux下用renameTo方法修改java web项目中文件夹名称的实例

    Linux下用renameTo方法修改Java Web项目中文件夹名称的实例 在 Linux 环境中,修改 Java Web 项目中的文件夹名称是一个常见的问题。今天,我们将分享一个使用 renameTo 方法修改 Java Web 项目中文件夹名称的实例。...

    ORACLE Rename Table的语法

    在 ORACLE 中,重命名(Rename)一个表的命令是 ALTER TABLE old_name RENAME TO new_name,而不是 RENAME old_name TO new_name。 REname 命令只是 SQL*Plus 的命令,不能在其他程序中使用,如果将其放在 Java、...

    Rename

    在“Rename zhuru”这个描述中,“zhuru”可能是指某种特定的注入方法或者工具,这可能是针对编程或自动化重命名过程的一个术语。 在IT行业中,重命名操作可能涉及到多种技术,包括但不限于以下几点: 1. 基本文件...

    解决log4j:ERROR Failed to rename代码包

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

    log4j:ERROR Failed to rename

    解决log4j:ERROR Failed to rename, win系统占用文件无法改名字的问题

    log4j:ERROR Failed to rename错误解决办法

    log4j:ERROR Failed to rename错误; 网上查找了下原因,大概意思是日志文件始终被占有,所以当log4j对日志文件进行rename时,就发生了Failed to rename错误 。要修改log4j的源码,附件是我修改好后的,方便大家...

    文件重命名工具rename

    "文件重命名工具rename"是一款历史悠久且功能丰富的应用程序,专门设计用于帮助用户高效地管理和整理他们的文件系统。在数字化时代,文件数量日益庞大,统一、有序的文件命名规则显得尤为重要,而这款工具正好解决了...

    kafka 解决log4j:ERROR Failed to rename错误解决办法错误的jar包

    log4j:ERROR Failed to rename

    java临时文件重命名-Java程序重命名文件或目录.pdf

    Java提供了`java.io.File`类,它包含了多种方法来处理文件和目录,其中之一就是`renameTo()`方法,用于重命名文件或目录。在本文中,我们将深入探讨`renameTo()`方法的工作原理、使用示例以及注意事项。 `renameTo...

    Tag&Rename 3.5.1

    Tag&Rename 3.5.1

    log4j修改源码后解决log4j:ERROR Failed to rename错误解决办法错误的jar包

    log4j:ERROR Failed to rename错误解决办法,修改源码里的DailyRollingFileAppender类,用此jar包就不会再出现ERROR Failed to rename的错误了

    SRename.rar

    【标题】"SRename"是一款专为Windows操作系统设计的实用工具,主要用于批量处理图像文件的命名。这款软件功能强大,能够帮助用户轻松实现对图片文件的重命名、删除字符、改变文件格式以及按照特定顺序排序等多种操作...

    Freerename

    【Freerename】是一款专为用户设计的高效批量文件改名软件,它的主要特点是功能强大且操作简单。在日常工作中,我们经常会遇到需要一次性修改大量文件名称的情况,例如整理照片、归档文档或是统一项目文件等,这时,...

    rename的用法

    rename的用法 rename支持正则表达式 rename支持通配符 rename的参数

    Quick File Rename 1.2

    Quick File Rename 1.2是一款轻巧而高效的文件批量重命名工具,专为需要快速更改大量文件后缀名的用户设计。它以其简洁的操作界面和强大的功能,为用户提供了便捷的文件管理体验,尤其对比一些体积庞大、功能复杂的...

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

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

    base.apk.rename

    base.apk.rename

    rename

    批量命名通常涉及以下几种方法: 1. **序号命名**:在每个文件名前或后添加连续的数字,例如“图片1.jpg”,“图片2.jpg”等。 2. **替换命名**:查找文件名中的特定字符或字符串并替换为新的内容。 3. **模板命名*...

    FreeRename

    《FreeRename:批量文件重命名的艺术》 在日常的计算机操作中,我们常常会遇到需要批量重命名文件的情况,比如整理照片、管理音乐库或处理项目文档等。这时候,一个强大的文件重命名工具就显得尤为重要。"Free...

Global site tag (gtag.js) - Google Analytics