Sdílet prostřednictvím


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 a destinationFileName je Is a directory adresář.
  • IOException Vyvolá zprávuNot a directory, když sourceFileName je adresář a destinationFileName je soubor.
  • Bezobslužně proběhne, když oba sourceFileName soubory destinationFileName 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 nebo destinationFileName existuje a není soubor, nebo když oba sourceFileName a destinationFileName ukazují na stejný existující adresář.
  • Vyvolá zprávuThe source <sourceFileName> and destination <destinationFileName> are the same file, když sourceFileName a destinationFileName 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.

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