2010-09-08 179 views
14

我在文件夾中有多個文件,並且需要獲取上次修改日期。所以我用在VB.NET中獲取文件修改日期

FDate = IO.File.GetLastWriteTime(FName) 

它對一些文件工作正常,但在其他人,我得到日期1/1/1601。但是當我在Windows資源管理器中檢查文件時,所有日期看起來都很正常(最近)。所以,我猜測有多個文件存儲在文件系統中,而.NET所看到的並不是Windows所看到的。我怎樣才能得到在文件瀏覽器窗口中顯示爲「修改日期」的日期?

我嘗試了一些Visual Basic 6.0 API的東西,但這似乎在.NET中不起作用。

回答

27

File.GetLastWriteTime Method

如果path參數描述的文件不存在,這個方法返回午夜12點,1月1日,公元1601(CE)協調世界時(UTC),調整爲當地時間。

您查詢的文件可能丟失。

+3

我不敢相信,你說的對,它不是!但它是更早!其他更奇怪的事情正在發生。有趣的是,當你陷入困境時,你有時會錯過顯而易見的事實。乾杯 – Ianb 2010-09-08 14:10:27

4

對於文件夾中包含的所有文件,下面提到的查詢將得到正確的LastModifiedDate

Dim strFilepath = "" 'Specify path details 
    Dim directory As New System.IO.DirectoryInfo(strFilepath) 
    Dim File As System.IO.FileInfo() = directory.GetFiles() 
    Dim File1 As System.IO.FileInfo 
    For Each File1 In File 
     Dim strLastModified As String 
     strLastModified = System.IO.File.GetLastWriteTime(strFilepath & "\" & File1.Name).ToShortDateString() 
    Next