2011-10-04 58 views

回答

10

如果您使用的是Java 7,使用java.nio.file.Files.copy(Path source, Path target, CopyOption... options)

使用COPY_ATTRIBUTES選項來維護的最後修改時間:

COPY_ATTRIBUTES 試圖複製與之相關聯的文件屬性這個文件到 目標文件。被複制的確切文件屬性爲平臺,依賴 文件系統,因此未指明。 最低限度地,如果由兩個 源和目標文件存儲支持 上次修改時間被複制到目標文件。文件時間戳的複製可能 導致精度損失。

着重強調

對於Java 6和更早版本,Apache的百科全書具有的功能來複制文件

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

注意的意見

設置preserveFileDate爲true,嘗試保留文件的最後 修改日期/使用File.setLastModified(長)的時間,但它是 不是卦保證手術會成功。如果修改 操作失敗,則不提供任何指示。

這隻會嘗試保留修改日期,而不是其他文件屬性。

否則,你將不得不使用的Runtime.exec或類似的運行外部程序的東西。

+2

除最後修改日期 –

+0

我正在使用Java 6,我正在考慮爲移動/複製示例運行外部批處理: Runtime.getRuntime().exec(new String [] {「cmd.exe」,「/c「,」move.bat「}); – user648026