Zmírnění: Oddělovač cest ZipArchiveEntry.FullName

Počínaje aplikacemi, které cílí na rozhraní .NET Framework 4.6.1, se oddělovač cesty použitý ve ZipArchiveEntry.FullName vlastnosti změnil z zpětného lomítka ("\") použitého v předchozích verzích rozhraní .NET Framework na lomítko ("/"). System.IO.Compression.ZipArchiveEntry objekty vytvoříte zavoláním jedné z přetížených metod ZipFile.CreateFromDirectory.

Dopad

Tato změna přináší implementaci rozhraní .NET do souladu s oddílem 4.4.17.1 specifikace formátu souboru .ZIP a umožňuje dekompresi archivů .ZIP v systémech mimo Windows.

Dekomprese souboru ZIP vytvořeného aplikací, která cílí na předchozí verzi rozhraní .NET Framework v operačních systémech jiných než Windows, jako je MacOS, nedokáže zachovat adresářovou strukturu. Například v systému MacOS vytvoří sadu souborů, jejichž název souboru zřetězí cestu k adresáři, všechny znaky zpětného lomítka ("\") a název souboru. V důsledku toho není zachována adresářová struktura dekomprimovaných souborů.

Dopad této změny na .ZIP soubory, které jsou dekomprimované v operačním systému Windows rozhraními API v oboru názvů rozhraní .NET Framework System.IO , by měly být minimální, protože tato rozhraní API mohou bez problémů zpracovat lomítko ("/") nebo zpětné lomítko ("\") jako znak oddělovače cesty.

Zmírnění

Pokud je toto chování nežádoucí, můžete se odhlásit přidáním konfiguračního nastavení do <části runtime> konfiguračního souboru vaší aplikace. V následující části se zobrazuje jak oddíl <runtime>, tak přepínač pro odhlášení.

<runtime>
   <AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=true" />
</runtime>

Aplikace, které cílí na předchozí verze rozhraní .NET Framework, ale běží na rozhraní .NET Framework 4.6.1 a novějších verzích, se můžou k tomuto chování přihlásit přidáním konfiguračního nastavení do <části modulu runtime> konfiguračního souboru aplikace. Následující text zobrazuje jak oddíl <runtime>, tak přepínač pro výslovný souhlas.

<runtime>
   <AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=false" />
</runtime>

Viz také