GetLastWriteTime возвращение 12/31/1600 7: 00: 00 PM
Я использую следующий код для записи даты измененного времени каталога в метку
string selectedPath = comboBox1.SelectedItem.ToString();
DateTime lastdate = Directory.GetLastWriteTime(selectedPath);
datemodified.Text = lastdate.ToString();
он возвращает дату 12/31/1600 7: 00: 00 PM, который я понятия не имею, где он получает эту дату. Может ли кто-нибудь помочь мне понять, почему он возвращает эту дату и как я могу это исправить? Я использую .Net 3.5 с
4 ответов
с документация:
Если каталог, описанный в параметре path, не существует, этот метод возвращает 12: 00 полночь, 1 января 1601 года н. э. (C. E.) координированное универсальное время (UTC), скорректированное на местное время.
таким образом, предположительно, ваш часовой пояс UTC-5 (в январе), и каталог не существует...
первая мысль заключается в том, что ваше время установлено правильно. Вторая мысль-щелкнуть правой кнопкой мыши по этой папке и посмотреть, что она говорит в свойствах. Наконец, я бы сделал новую тестовую папку и запустил этот бит тестов GetLastWriteTime, чтобы вы знали, что получаете обратно.
GetLastWriteTime
не всегда возвращайте надежное время даты, используйте это
string selectedPath = comboBox1.SelectedItem.ToString();
DateTime now = DateTime.Now;
TimeSpan localOffset = now - now.ToUniversalTime();
DateTime lastdate = File.GetLastWriteTimeUtc(selectedPath) + localOffset;
datemodified.Text = lastdate.ToString();
старый вопрос, но сегодня я столкнулась с этой проблемой. Эта конкретная дата также возвращается, когда ваш путь недействителен или файл не существует, потому что в любом из этих случаев нет встроенного исключения.