使用Java保留文件创建时间

时间:2014-01-19 11:03:43

标签: java

我在java中编写了一个小复制工具来复制我的USB记忆棒上的.mp3文件。复制新文件时,会保留一些文件属性,但不会保留创建时间。

要复制我使用的文件:

org.apache.commons.io.FileUtils
static void copyFile(File srcFile, File destFile, boolean preserveFileDate)

FileUtils.copyFile(sourceFile, newTargetFile, preserveFileDate);

所以我的问题是,有没有办法保留文件创建时间?如果没有,我想我设置了一个用windows robocopy复制的类。

2 个答案:

答案 0 :(得分:5)

如果您使用的是Java 7+,则可以使用:

Files.copy(source, target, StandardCopyOption.COPY_ATTRIBUTES);

如果这不复制创建时间(它在我的机器上),您也可以手动设置它:

Path source = ...;
Path target = ...;
Files.copy(source, target, StandardCopyOption.COPY_ATTRIBUTES);

FileTime creationTime  = (FileTime) Files.readAttributes(source, "creationTime").get("creationTime");
Files.setAttribute(target, "creationTime", creationTime);

答案 1 :(得分:0)

看看:http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html#basic

可以获取和设置文件属性,如创建时间。