Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le comportement des systèmes d’exploitation File.Replace 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 directoryquandsourceFileNameest un fichier etdestinationFileNameest un répertoire. - Lève IOException avec le message
Not a directoryquandsourceFileNameest un répertoire etdestinationFileNameest un fichier. - Réussit silencieusement lorsque
sourceFileNameetdestinationFileNamepointent vers le même fichier ou le même 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, lorsquesourceFileNameoudestinationFileNameexiste et n’est pas un fichier, ou lorsquesourceFileNameetdestinationFileNamepointent vers le même répertoire existant. - Lève IOException avec le message
The source <sourceFileName> and destination <destinationFileName> are the same filequandsourceFileNameetdestinationFileNamepointent vers le même fichier existant.
Version introduite
.NET 6
Type de changement cassant
Cette modification peut affecter la compatibilité source .
Raison de la modification
Cette modification a été apportée pour s'assurer que File.Replace lève les mêmes exceptions pour les mêmes raisons sur toutes 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.