Получить дату изменения файла в 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