Задание метки времени для файла, доступного только для чтения, в Windows
Установка метки времени в файле с атрибутом только для чтения теперь завершается успешно в Windows и больше не создает исключение.
Старое поведение
До выпусков обслуживания .NET 6 задав метку времени для файла, доступного только для чтения в Windows, привел к UnauthorizedAccessExceptionсозданию метки времени.
Новое поведение
Начиная с .NET 6.0.2, установка метки времени для файла только для чтения в Windows завершается успешно.
Представленные версии
.NET 6.0.2 (выпуск обслуживания)
Тип критического изменения
Это изменение может повлиять на совместимость двоичного кода.
Причина изменения
Клиенты дали отзыв о том, что они ожидали, что метка времени в файле только для чтения будет выполнена успешно. Это изменение также обеспечивает согласованность поведения Windows с Linux. Наконец, поведение было непреднамеренным, вызванным ошибкой.
Рекомендуемое действие
Маловероятно, что существующий код ожидает, что установка метки времени в файле только для чтения завершится ошибкой. Однако если код ожидает, что он завершится ошибкой, добавьте проверка для атрибута только для чтения, используя File.GetAttributes(String) перед попыткой задать метку времени.
Затронутые API
- System.IO.File.SetCreationTime(String, DateTime)
- System.IO.File.SetCreationTimeUtc(String, DateTime)
- System.IO.File.SetLastAccessTime(String, DateTime)
- System.IO.File.SetLastAccessTimeUtc(String, DateTime)
- System.IO.File.SetLastWriteTime(String, DateTime)
- System.IO.File.SetLastWriteTimeUtc(String, DateTime)