【发布时间】:2014-03-24 17:15:11
【问题描述】:
如何使用 Java FileChannel 为文件和目录复制保留时间戳? 看起来文件在复制到另一个位置时没有保留时间戳。 在 Java 中使用 FileChannel 怎么可能?
【问题讨论】:
标签: java copy timestamp filechannel
如何使用 Java FileChannel 为文件和目录复制保留时间戳? 看起来文件在复制到另一个位置时没有保留时间戳。 在 Java 中使用 FileChannel 怎么可能?
【问题讨论】:
标签: java copy timestamp filechannel
这不是FileChannel 的角色。 FileChannel 只是一个字节通道的包装器。
您想要的是为此使用“新的”Java 7 文件 API。如果您想在保留属性的同时将文件复制到某个位置,您可以这样做:
Files.copy(src, dst, StandardCopyOption.COPY_ATTRIBUTES);
【讨论】:
COPY_ATTRIBUTES 只是“尽力而为”。除了“修改的时间戳”之外,没有其他保证。
FileChannel做不到,可以用apache commons io:
IOUtils.copy(new FileInputStream(file), new FileOutputStream(file2));
// copy file and preserve the time stamp. the sourceFile and destFile are of type java.io.File
FileUtils.copyFile(sourceFile,destFile);
参考:http://www.studytrails.com/java-io/file-copying-and-moving-deleting.jsp
【讨论】: