Ustawianie znacznika czasu w pliku tylko do odczytu w systemie Windows
Ustawienie znacznika czasu w pliku z atrybutem tylko do odczytu teraz powiedzie się w systemie Windows i nie zgłasza już wyjątku.
Stare zachowanie
Przed wersjami obsługi platformy .NET 6 ustawienie znacznika czasu w pliku tylko do odczytu w systemie Windows spowodowało wystąpienie błędu UnauthorizedAccessException.
Nowe zachowanie
Począwszy od platformy .NET 6.0.2, ustawienie znacznika czasu w pliku tylko do odczytu w systemie Windows powiedzie się.
Wprowadzona wersja
.NET 6.0.2 (wersja serwisowa)
Typ zmiany powodującej niezgodność
Ta zmiana może mieć wpływ na zgodność binarną.
Przyczyna wprowadzenia zmiany
Klienci przekazali opinię, że spodziewali się ustawienia sygnatury czasowej w pliku tylko do odczytu, który zakończy się powodzeniem. Ta zmiana sprawia również, że zachowanie systemu Windows jest spójne z systemem Linux. Na koniec zachowanie było niezamierzone, spowodowane usterką.
Zalecana akcja
Jest mało prawdopodobne, że istniejący kod oczekuje ustawienia znacznika czasu w pliku tylko do odczytu, aby zakończyć się niepowodzeniem. Jeśli jednak kod oczekuje, że nie powiedzie się, przed podjęciem próby ustawienia znacznika czasu dodaj sprawdzenie atrybutu tylko do odczytu przy użyciu File.GetAttributes(String) polecenia .
Dotyczy interfejsów 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)