Aracılığıyla paylaş


Unix'te File.Replace, Windows uygulamasıyla eşleşecek özel durumlar oluşturur

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 yöntemi File.Replace :

  • IOException Bir dosya ve destinationFileName bir dizin olduğunda sourceFileName iletiyle Is a directory birlikte oluşturur.
  • IOException Bir dizin ve destinationFileName bir dosya olduğunda sourceFileName iletiyle Not a directory birlikte oluşturur.
  • Hem hem de sourceFileNamedestinationFileName aynı dosyaya veya dizine işaret ettiğinde sessizce başarılı olur.

Yeni davranış

Unix'te , .NET 6 ile yöntemi File.Replace :

  • UnauthorizedAccessException veya mevcut olduğunda sourceFileName ve bir dosya olmadığında veya destinationFileName her ikisi de sourceFileName ve destinationFileName aynı varolan dizine işaret ettiğinde iletisiyle The specified path <path> is not a patholuşturur.
  • IOException Olduğunda ve destinationFileName aynı var olan dosyaya işaret ettiğinde sourceFileName iletisiyle The source <sourceFileName> and destination <destinationFileName> are the same file birlikte oluşturur.

Sürüm kullanıma sunulmuştur

.NET 6

Hataya neden olan değişikliğin türü

Bu değişiklik kaynak uyumluluğunu etkileyebilir.

Değişiklik nedeni

Bu değişiklik, platformlar arasında aynı nedenlerle aynı özel durumların atılmasını sağlamak File.Replace için yapılmıştır.

Unix'i bir try catch bloğun içinde çağırırsanızFile.Replace, artık öğesini de yakaladığınıza UnauthorizedAccessExceptionemin olun. Ayrıca, yakalanan yeni davranışlara da dikkat edin.

Etkilenen API’ler