File.Replace sur Unix lève des exceptions pour correspondre à l’implémentation Windows
Le comportement de File.Replace sur les systèmes d’exploitation Unix a changé. Les exceptions qu’il lève correspondent désormais à celles levées par l’implémentation Windows.
Comportement précédent
Sur Unix, avec .NET 5, la méthode File.Replace :
- Lève IOException avec le message
Is a directory
quandsourceFileName
est un fichier etdestinationFileName
est un répertoire. - Lève IOException avec le message
Not a directory
quandsourceFileName
est un répertoire etdestinationFileName
est un fichier. - Réussit en mode silencieux lorsque
sourceFileName
etdestinationFileName
pointent vers le même fichier ou répertoire.
Nouveau comportement
Sur Unix, avec .NET 6, la méthode File.Replace :
- Lève UnauthorizedAccessException avec le message
The specified path <path> is not a path
, quandsourceFileName
oudestinationFileName
existe et n’est pas un fichier ou lorsquesourceFileName
etdestinationFileName
pointent vers le même répertoire existant. - Lève IOException avec le message
The source <sourceFileName> and destination <destinationFileName> are the same file
quandsourceFileName
etdestinationFileName
pointent vers le même fichier existant.
Version introduite
.NET 6
Type de changement cassant
Ce changement peut affecter la compatibilité source.
Raison du changement
Ce changement a été apporté pour s’assurer que File.Replace lève les mêmes exceptions pour les mêmes raisons sur les plateformes.
Action recommandée
Si vous appelez File.Replace sur Unix à l’intérieur d’un bloc try catch
, veillez à intercepter UnauthorizedAccessException également. En outre, tenez compte des nouveaux comportements qui sont interceptés.
API affectées
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour