Получить дату изменения файла в VB.NET
У меня есть несколько файлов в папке, и мне нужно получить дату последнего изменения. Так что я использовал
FDate = IO.File.GetLastWriteTime(FName)
С некоторыми файлами он работает нормально, но на других я получаю дату 01.01.16. Но когда я проверяю файлы в проводнике, все даты выглядят нормально (недавно). Итак, я предполагаю, что в файловой системе хранится несколько файлов с датами, и Windows видит их не так. Как я могу получить именно ту дату, которая отображается как "дата изменения" в окне проводника?
Я попробовал некоторые API Visual Basic 6.0, но, похоже, это не работает в.NET.
2 ответа
Из метода File.GetLastWriteTime:
Если файл, описанный в параметре пути, не существует, этот метод возвращает 12:00 полуночи, 1 января, 1601 г. (CE), всемирное координированное время (UTC), скорректированное на местное время.
Файл, который вы запрашиваете, вероятно, отсутствует.
Запрос, указанный ниже, получит правильный 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