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ğundasourceFileName
iletiyleIs a directory
birlikte oluşturur. - IOException Bir dizin ve
destinationFileName
bir dosya olduğundasourceFileName
iletiyleNot a directory
birlikte oluşturur. - Hem hem de
sourceFileName
destinationFileName
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 veyadestinationFileName
her ikisi desourceFileName
vedestinationFileName
aynı varolan dizine işaret ettiğinde iletisiyleThe specified path <path> is not a path
oluşturur. - IOException Olduğunda ve
destinationFileName
aynı var olan dosyaya işaret ettiğindesourceFileName
iletisiyleThe 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.
Önerilen eylem
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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin