【发布时间】:2011-05-21 07:25:52
【问题描述】:
如何使用java.io 包重命名文件?
【问题讨论】:
-
下次遇到问题时,请表现出一些主动性并猜测作为可能具有操作的可能类的意义,然后尝试阅读文档。当一个人开始或试图解决问题时,思考、阅读和尝试是成功的一半。
如何使用java.io 包重命名文件?
【问题讨论】:
File oldfile = new File(old_name);
File newfile = new File(new_name);
boolean Rename = oldfile.renameTo(newfile);
如果成功重命名旧文件,布尔值Rename 将为真。
【讨论】:
import java.io.File;
import java.io.IOException
public class Rename {
public static void main(String[] argv) throws IOException {
// Construct the file object. Does NOT create a file on disk!
File f = new File("Rename.java~"); // backup of this source file.
// Rename the backup file to "junk.dat"
// Renaming requires a File object for the target.
f.renameTo(new File("junk.dat"));
}
}
参考:http://www.java2s.com/Code/Java/File-Input-Output/RenameafileinJava.htm
【讨论】:
使用java.io.File 的renameTo 方法。
【讨论】:
FWIW,从 Java 7 及更高版本开始,对此的首选答案可能应该是使用java.nio.file.Files#move:
java.nio.file.Files.move(oldPath, newPath, StandardCopyOption.ATOMIC_MOVE)
人们更喜欢这种方法的原因是java.io.File#renameTo 中记录的这种行为:
此方法的行为的许多方面都与生俱来 平台相关:重命名操作可能无法移动 文件从一个文件系统到另一个文件系统,它可能不是原子的,它 如果具有目标抽象路径名的文件可能不会成功 已经存在。应始终检查返回值以确保 表示重命名操作成功。
注意,Files 类定义了 move 方法来移动或重命名一个 以独立于平台的方式文件。
当使用java.nio.file.Files#move 时,可以指定standard CopyOption parameters 以指示更细微的行为(例如,如果文件已经存在,您希望发生什么,是否必须以原子方式完成,等等)
【讨论】: