Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
A partire dalle app destinate a .NET Framework 4.6.1, il separatore di percorso usato nella ZipArchiveEntry.FullName proprietà è cambiato dalla barra rovesciata ("\") usata nelle versioni precedenti di .NET Framework a una barra ("/"). System.IO.Compression.ZipArchiveEntry gli oggetti vengono creati chiamando uno degli overload del metodo ZipFile.CreateFromDirectory.
Impatto
Questa modifica garantisce la conformità dell'implementazione .NET alla sezione 4.4.17.1 della specifica relativa al formato di file ZIP e consente agli archivi con estensione ZIP di essere decompressi anche in sistemi non Windows.
La decompressione di un file ZIP creato da un'app destinata a una versione precedente di .NET Framework in sistemi operativi non Windows come MacOS non riesce a mantenere la struttura di directory. Ad esempio, in MacOS viene creato un set di file il cui nome file concatena il percorso della directory, qualsiasi barra rovesciata ("\") e il nome file. Di conseguenza, la struttura di directory dei file decompressi non viene mantenuta.
L'impatto di questa modifica sui file .ZIP decompressi nel sistema operativo Windows dalle API nello spazio dei nomi .NET Framework System.IO deve essere minimo, poiché queste API possono gestire facilmente una barra ("/") o una barra rovesciata ("\") come carattere separatore di percorso.
Mitigazione
Se questo comportamento è indesiderato, è possibile disabilitarlo aggiungendo un'impostazione di configurazione alla <sezione runtime> del file di configurazione dell'applicazione. Di seguito sono illustrate sia la <runtime>
sezione che l'opzione di rifiuto esplicito.
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=true" />
</runtime>
Inoltre, le app destinate alle versioni precedenti di .NET Framework ma in esecuzione in .NET Framework 4.6.1 e versioni successive possono acconsentire esplicitamente a questo comportamento aggiungendo un'impostazione di configurazione alla <sezione runtime> del file di configurazione dell'applicazione. Di seguito sono illustrate sia la <runtime>
sezione che l'opzione di consenso esplicito.
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=false" />
</runtime>