Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Unix tabanlı işletim sistemlerindeki File.Replace davranışlar değişti. Oluşturduğu özel durumlar artık Windows uygulaması tarafından oluşturulmuş olanlarla eşleşiyor.
Önceki davranış
Unix'te, .NET 5 ile File.Replace yöntemi:
-
IOException bir dosya ve
Is a directory
bir dizin olduğundasourceFileName
olduğunda,destinationFileName
mesajıyla fırlatır. -
IOException bir dizin olduğunda ve
Not a directory
bir dosya olduğunda,sourceFileName
mesajıyladestinationFileName
fırlatır. - Hem
sourceFileName
hem dedestinationFileName
aynı dosyaya veya dizine işaret ettiğinde sessizce gerçekleşir.
Yeni davranış
Unix'te, .NET 6 ile File.Replace yöntemi:
-
UnauthorizedAccessException, iletisiyle
The specified path <path> is not a path
oluşturur;sourceFileName
veyadestinationFileName
mevcut olup bir dosya olmadığında veyasourceFileName
vedestinationFileName
aynı var olan dizine işaret ettiğinde. -
IOException mesajını
The source <sourceFileName> and destination <destinationFileName> are the same file
ilesourceFileName
vedestinationFileName
aynı var olan dosyaya işaret ettiğinde atar.
Sürüm kullanıma sunulmuştur
.NET 6
Kesinti yaratan değişiklik türü
Bu değişiklik kaynak uyumluluğunuetkileyebilir.
Değişiklik nedeni
Bu değişiklik, File.Replace'nin platformlar arasında aynı nedenlerle aynı istisnaları fırlatmasını sağlamak için yapılmıştır.
Önerilen eylem
Unix üzerinde bir File.Replace bloğu içinde try catch
çalıştırırsanız, artık UnauthorizedAccessException öğesini de yakaladığınızdan emin olun. Ayrıca, yakalanan yeni davranışlara da dikkat edin.