【问题标题】:How use Java FileChannel to copy preserving timestamps如何使用 Java FileChannel 复制保留的时间戳
【发布时间】:2014-03-24 17:15:11
【问题描述】:

如何使用 Java FileChannel 为文件和目录复制保留时间戳? 看起来文件在复制到另一个位置时没有保留时间戳。 在 Java 中使用 FileChannel 怎么可能?

【问题讨论】:

    标签: java copy timestamp filechannel


    【解决方案1】:

    这不是FileChannel 的角色。 FileChannel 只是一个字节通道的包装器。

    您想要的是为此使用“新的”Java 7 文件 API。如果您想在保留属性的同时将文件复制到某个位置,您可以这样做:

    Files.copy(src, dst, StandardCopyOption.COPY_ATTRIBUTES);
    

    【讨论】:

    • 应该注意的是,正如其 javadoc 所指定的,COPY_ATTRIBUTES 只是“尽力而为”。除了“修改的时间戳”之外,没有其他保证。
    【解决方案2】:

    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

    【讨论】:

    • 不...不会复制属性...时间戳是的,但只有时间戳
    猜你喜欢
    • 2011-05-16
    • 2015-06-14
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    相关资源
    最近更新 更多