在VB.NET中获取文件修改日期

问题描述:

我在文件夹中有多个文件,并且需要获取上次修改日期。所以我用在VB.NET中获取文件修改日期

FDate = IO.File.GetLastWriteTime(FName) 

它对一些文件工作正常,但在其他人,我得到日期1/1/1601。但是当我在Windows资源管理器中检查文件时,所有日期看起来都很正常(最近)。所以,我猜测有多个文件存储在文件系统中,而.NET所看到的并不是Windows所看到的。我怎样才能得到在文件浏览器窗口中显示为“修改日期”的日期?

我尝试了一些Visual Basic 6.0 API的东西,但这似乎在.NET中不起作用。

File.GetLastWriteTime Method

如果path参数描述的文件不存在,这个方法返回午夜12点,1月1日,公元1601(CE)协调世界时(UTC),调整为当地时间。

您查询的文件可能丢失。

+3

我不敢相信,你说的对,它不是!但它是更早!其他更奇怪的事情正在发生。有趣的是,当你陷入困境时,你有时会错过显而易见的事实。干杯 – Ianb 2010-09-08 14:10:27

对于文件夹中包含的所有文件,下面提到的查询将得到正确的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