Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A ZIP-fájl specifikációja azt határozza meg, hogy a beágyazott fájlrekord központi könyvtárfejlécében az általános célú bitjelölő 1 & 2 bitjét kell használni a beágyazott fájl tömörítési szintjének jelzésére.
.NET-keretrendszer beállítja ezeket a biteket a zip-fájlok létrehozásakor, amelyek a ZipPackage API. A .NET-keretrendszer kód .NET-be való migrálása során ez a funkció elveszett, és az .NET-ben az 1. és 2. bit mindig az új fájlrekordok ZIP-fájlban való létrehozásakor lett beállítva0. Ez a kompatibilitástörő változás visszaállítja ezt a képességet. A híváskor CompressionOption megadott ZipArchive.CreateEntry meglévő .NET-ügyfelek azonban látni fogják az általános célú bitjelölő értékeinek változását.
Előző viselkedés
Korábban a .NET megőrizte az általános célú biteket minden ZipArchiveEntry olyan ZipArchive esetben, amikor betöltődött, és új bejegyzéseket adott hozzá. A hívás ZipArchive.CreateEntry(String, CompressionLevel) azonban mindig azt eredményezte, hogy az 1> 2 bit az alapértelmezett értéken 0maradt, még akkor is, ha nem CompressionLevelCompressionLevel.Optimal használták.
Ennek a viselkedésnek alsóbb rétegbeli hatása volt: Package.CreatePart(Uri, String, CompressionOption) az CompressionOption 1& 2. bit meghívása nem történt meg (így a CompressionOption rendszer mindig a ZIP-fájlban CompressionOption.Normalmaradt).
Új viselkedés
A .NET 9-től kezdődően a paraméter az CompressionLevel általános célú bitjelölőkre van leképezve az alábbi táblázatban leírtak szerint.
CompressionLevel |
1. bit | 2. bit |
|---|---|---|
NoCompression |
0 | 0 |
Optimal |
0 | 0 |
SmallestSize |
0 | 0 |
Fastest |
0 | 0 |
Ha meghívja ZipArchive.CreateEntry(String, CompressionLevel) és megadjaCompressionLevel.NoCompression, a beágyazott fájlrekord tömörítési Storedmódszere az alapértelmezett érték helyett a következőre Deflate van állítva: .)
A már létező ZipArchiveEntry rekordok általános célú bitjei ZipArchive továbbra is megmaradnak, ha új ZipArchiveEntry rekordot adnak hozzá.
Az CompressionOption enumerálási értékek Package.CreatePart(Uri, String, CompressionOption) a következő táblázatban látható módon vannak megfeleltetve CompressionLevel (és a megfelelő bitek beállítását eredményezik).
CompressionOption |
CompressionLevel |
|---|---|
NotCompressed |
NoCompression |
Normal |
Optimal |
Maximum |
SmallestSize(.NET-keretrendszer)Optimal (.NET) |
Fast |
Fastest |
SuperFast |
Fastest |
Bevezetett verzió
.NET 9 előzetes verzió 5
A kompatibilitástörő változás típusa
Ez a változás viselkedésbeli változás.
A változás oka
Ez a kompatibilitástörő változás a meglévő .NET-keretrendszer viselkedés visszaállítására lett bevezetve, amely a .NET-ből kimaradt a portoláskor. Ez a változás az alsóbb rétegbeli ügyfelek (például System.IO.Packaging) számára is lehetővé teszi ezeknek a biteknek az értékét.
Javasolt művelet
Ha meg szeretné győződni arról, hogy az új ZipArchiveEntry rekordokhoz általános célú bitjelölők ZipArchivetartoznak, adjon meg egy 0CompressionLevelCompressionLevel.Optimal vagy több rekordot a híváskor.CompressionLevel.NoCompressionZipArchive.CreateEntry(String, CompressionLevel)
Ha Package.CreatePart(Uri, String, CompressionOption) egy OPC-csomaghoz szeretne alkatrészeket hozzáadni, adjon meg egy vagy több CompressionOption elemet CompressionOption.NotCompressedCompressionOption.Normal.