File.Replace v systému Unix vyvolává výjimky odpovídající implementaci systému Windows.
Chování operačních File.Replace systémů se systémem Unix se změnilo. Výjimky, které vyvolá, nyní odpovídají těm, které jsou vyvolány implementací Systému Windows.
Předchozí chování
V unixu s .NET 5 metoda File.Replace :
- Vyvolá IOException zprávu, když
sourceFileName
je soubor adestinationFileName
jeIs a directory
adresář. - IOException Vyvolá zprávu
Not a directory
, kdyžsourceFileName
je adresář adestinationFileName
je soubor. - Bezobslužně proběhne, když oba
sourceFileName
souborydestinationFileName
nebo adresáře odkazují na stejný soubor nebo adresář.
Nové chování
V unixu s .NET 6 metoda File.Replace :
- UnauthorizedAccessException Vyvolá zprávu
The specified path <path> is not a path
, pokud buďsourceFileName
nebodestinationFileName
existuje a není soubor, nebo když obasourceFileName
adestinationFileName
ukazují na stejný existující adresář. - Vyvolá zprávu
The source <sourceFileName> and destination <destinationFileName> are the same file
, kdyžsourceFileName
adestinationFileName
nasměruje IOException na stejný existující soubor.
Zavedená verze
.NET 6
Typ zásadní změny
Tato změna může mít vliv na kompatibilitu zdroje.
Důvod změny
Tato změna byla provedena, aby se zajistilo, že File.Replace se na různých platformách vyvolají stejné výjimky.
Doporučená akce
Pokud v unixu try catch
v bloku vyvoláteFile.Replace, nezapomeňte nyní také zachytit UnauthorizedAccessException. Mějte také na paměti nové chování, které jsou zachyceny.
Ovlivněná rozhraní API
Spolupracujte s námi na GitHubu
Zdroj tohoto obsahu najdete na GitHubu, kde můžete také vytvářet a kontrolovat problémy a žádosti o přijetí změn. Další informace najdete v našem průvodci pro přispěvatele.