在保持所有属性(创建日期,日期等)的同时移动/复制文件的最佳方法是什么?
谢谢
答案 0 :(得分:10)
如果您使用的是Java 7,请使用java.nio.file.Files.copy(Path source, Path target, CopyOption... options)
使用COPY_ATTRIBUTES选项维持上次修改时间:
COPY_ATTRIBUTES 尝试将与此文件关联的文件属性复制到 目标文件。复制的确切文件属性是platform和 文件系统依赖,因此未指定。 最小的, 如果两者都支持,则将last-modified-time复制到目标文件 源文件和目标文件存储。复制文件时间戳可能 导致精度损失。
强调添加
对于Java 6及更早版本,Apache commons具有复制文件的功能
org.apache.commons.io.FileUtils.copyFile(File srcFile, File destFile,
boolean preserveFileDate)
注意评论
将preserveFileDate设置为true会尝试保留文件的最后一个 使用File.setLastModified(long)修改日期/时间,但它是 不保证操作会成功。如果修改 操作失败,没有提供任何指示。
这只会尝试保留修改日期,而不是其他文件属性。
否则,您必须使用Runtime.exec或类似的东西来运行外部进程。