Aracılığıyla paylaş


Unix'te File.Replace, Windows'taki uygulama ile eşleşmesi için istisnalar fırlatır.

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ğunda sourceFileName olduğunda, destinationFileName mesajıyla fırlatır.
  • IOException bir dizin olduğunda ve Not a directory bir dosya olduğunda, sourceFileName mesajıyla destinationFileName fırlatır.
  • Hem sourceFileName hem de destinationFileName 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 veya destinationFileName mevcut olup bir dosya olmadığında veya sourceFileName ve destinationFileName aynı var olan dizine işaret ettiğinde.
  • IOException mesajını The source <sourceFileName> and destination <destinationFileName> are the same file ile sourceFileName ve destinationFileName 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.

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.

Etkilenen API'ler