小编典典

使用Java保留文件创建时间

java

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

要复制文件,我使用:

org.apache.commons.io.FileUtils
静态void copyFile(File srcFile,File destFile,boolean prepareFileDate)



FileUtils.copyFile(sourceFile,newTargetFile,preserveFileDate);

所以我的问题是,有没有办法节省文件创建时间?如果没有,我想我建立了一个用Windows robocopy复制的类。


阅读 410

收藏
2020-11-30

共1个答案

小编典典

如果您使用的是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);
2020-11-30