Получить дату изменения файла в VB.NET

У меня есть несколько файлов в папке, и мне нужно получить дату последнего изменения. Поэтому я использовал

FDate = IO.File.GetLastWriteTime(FName)

Он отлично работает с некоторыми файлами, но на других я получаю дату 01.01.1601. Но когда я проверяю файлы в проводнике, все даты выглядят нормально (недавно). Итак, я предполагаю, что в файловой системе хранится несколько файловых дат, а Windows видит не те, которые видит .NET. Как я могу получить точную дату, которая отображается как "дата изменения" в окне проводника?

Я пробовал некоторые Visual Basic 6.0 API, но, похоже, это не работает в .NET.

Ответы

Ответ 1

От Метод File.GetLastWriteTime:

Если файл, описанный в параметре пути, не существует, этот метод возвращает 12:00 в полночь, 1 января, 1601 г. A.D. (C.E.) Скоординированное универсальное время (UTC) с поправкой на местное время.

Вероятно, файл отсутствует.

Ответ 2

Упомянутый ниже запрос получит правильный 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