22

我在一个文件夹中有许多文件,我需要获取最后修改日期。所以我用

FDate = IO.File.GetLastWriteTime(FName)

它适用于某些文件,但在其他文件上,我得到的日期是 1601 年 1 月 1 日。但是当我在 Windows 资源管理器中检查文件时,所有日期看起来都很正常(最近)。所以,我猜在文件系统中存储了多个文件日期,而 .NET 看到的不是 Windows 看到的。如何准确获取在文件资源管理器窗口中显示为“修改日期”的日期?

我尝试了一些Visual Basic 6.0 API 的东西,但这似乎不适用于 .NET。

4

2 回答 2

35

File.GetLastWriteTime 方法

如果 path 参数中描述的文件不存在,则此方法返回 1601 年 1 月 1 日午夜 12:00 (CE) 协调世界时 (UTC),调整为本地时间。

您正在查询的文件可能已丢失。

于 2010-09-08T14:04:01.437 回答
5

下面提到的查询将对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
于 2011-11-16T07:07:41.093 回答