[英]What is the proper way to rename a file in Java?
在'正确'文件重命名下我的意思是:
它应该在不同的平台上工作。
在以下情况下它应该以某种方式处理:
有没有共同的解决方案/库/策略?
如javadoc中所述:
重命名此抽象路径名表示的文件。 此方法行为的许多方面本质上依赖于平台:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,如果具有目标抽象路径名的文件可能不会成功已经存在。 应始终检查返回值以确保重命名操作成功。
这是一个例子:
// The File (or directory) with the old name
File oldFile = new File("old.txt");
// The File (or directory) with the new name
File newFile = new File("new.txt");
// Rename file (or directory)
boolean success = oldFile.renameTo(newFile);
if (!success) {
// File was not successfully renamed
}
我的建议是检查success
布尔值并使用API中定义的标准方法。
google guava lib包含Files.move(..)mothod,它确认了你的一些要求 - 实际上,它试图用File.renameTo()移动文件,如果失败,则尝试复制并删除源代码战略。
我不知道检查可用空间的库,因为在移动/复制期间可用空间可以改变,并且一致处理低空间的唯一方法是使用复制/移动方法返回特殊错误代码/异常,指出你的原因失败 - 当前的java File API没有...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.