iT邦幫忙

0

使用FileInfo.LastWriteTime設定新檔案的修改時間時,時分"秒"會和原檔案不一致

  • 分享至 

  • xImage

目前在作一個檔案複製的功能,因為需求的關係,所以不使用File.Copy的方式,而是使用File.Create的方式,然後透過FileInfo.LastWriteTime的方式將新檔案的修改時間設定為原檔案的修改時間,但是遇到指定後竟然秒數會不一致的情形
https://ithelp.ithome.com.tw/upload/images/20230426/20108645wDhSwKTupO.jpg
上圖中
dtFile(原檔案)的時間為10:27:03,而newFileDt(新檔案)的時間為10:27:04。
這邊奇怪的是原檔案的時間明明是3秒,可是指定給新檔案後,新檔案的時間竟然變成4秒。

下圖是分別顯示設定修改時間時新舊檔案所取得的時間
https://ithelp.ithome.com.tw/upload/images/20230426/20108645GpMHXTkYy1.jpg

https://ithelp.ithome.com.tw/upload/images/20230426/20108645MmHHB6Tg6C.jpg

由上面兩張圖,可以很明顯看到421行在設定新檔案的修改時間時,原檔案是10:27:03,可是新檔案卻是10:27:04。另外,有些檔案設定後是和原檔案時間一致的,可是有些就是會不一致(如上圖)。

請問有人有遇過這種情形嗎?

PS.原先是使用File.SetLastWriteTimeUtc的方式設定,可是不好顯示相關訊息,因此改用FileInfo.LastWriteTime的方式。

看更多先前的討論...收起先前的討論...
wuewen iT邦新手 5 級 ‧ 2023-04-26 14:55:05 檢舉
補充:
原先是將檔案備到USB,但剛剛將備份的目的地改成在桌面的資料夾,結果時間是正確的,完全搞不懂。
wuewen iT邦新手 5 級 ‧ 2023-04-26 15:02:02 檢舉
找到原因了,因為USB格式問題,原先USB是exFAT格式,改成NTFS就沒問題了。完全不理解為何exFAT會有這種問題。
re.Zero iT邦研究生 5 級 ‧ 2023-04-26 19:08:35 檢舉
這能算是 exFAT 的鍋嗎? 我覺得是 MS 懶~~
https://superuser.com/questions/1685706/timestamp-changes-when-copying-file-to-exfat-drive
wuewen iT邦新手 5 級 ‧ 2023-04-27 15:28:15 檢舉
的確是,都是MS創出來的,不理解為何要讓時間不一致。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答