2012-01-26 111 views
1

我有一個項目,我正在努力在哪裏需要驗證本地和遠程位置計算機中的文件。我嘗試了幾件事。首先我試着檢查兩個文件的CreationTimeUTC。我發現創建時間存儲文件在相關文件系統上創建的時間,而不是文件第一次創建的時間。只要文件名稱匹配並且是最新版本即可。我不「真的」想讀取整個內容並獲取MD5散列或其他形式的標識符,因爲讀取文件可能是不可能的。 (獲取由另一個程序打開的文件的信息,例如將使這種方法不可能)文件源創建時間

所以基本上我問什麼; 文件頭中是否存有表示文件創建時間或類似內容的內容?或者,如果任何人都可以推薦使用另一個設置或方法。

在此先感謝。

回答

1

當每個文件從本地計算機複製到遠程計算機,使用File.GetCreationTime指定文件的創建時間爲string,並且遠程機器的副本然後設置創建時間與File.SetCreationTime所以它的創建時間相匹配原始文件。

0

文件創建時間將始終取決於它創建的機器。簡單的解決方案是將文件存儲在您控制的計算機上,並保持時間同步。

在我的頭頂,我能想到的兩種方法來解決你的問題:

  • 獲取遠程和本地系統日期時間和比較文件時候使用兩者之間的 差異。

  • 如果文件從不刪除,則可以通過計算文件創建與其最後一次修改之間的時間間隔來檢查文件的「生存期」 。

但是,這兩種策略都可以通過手動更改系統日期時間來繞過。

0

您是否嘗試過使用File.GetLastWriteTime?至少在將筆記本電腦上的文件複製到文件服務器時,LastWriteTime保持不變。

(看起來好像有一個已知的conversion bug會導致時間和日期信息在從NTFS複製到FAT時有時會出錯,反之亦然)。