Получить дату изменения файла в VB.NET - PullRequest
17 голосов
/ 08 сентября 2010

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

FDate = IO.File.GetLastWriteTime(FName)

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

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

Ответы [ 2 ]

32 голосов
/ 08 сентября 2010

С File.GetLastWriteTime Method :

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

Файл, который вы запрашиваете, вероятно, отсутствует.

4 голосов
/ 16 ноября 2011

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