From 42a3530f1d570b80c58d085a82bfc9caf652346c Mon Sep 17 00:00:00 2001 From: tehgunte <83183177+tehgunte@users.noreply.github.com> Date: Sun, 23 Oct 2022 10:27:19 -0300 Subject: [PATCH] SURE SURE --- .vs/ItteBloxLauncher/v17/.suo | Bin 0 -> 44032 bytes ItteBloxLauncher.sln | 25 + ItteBloxLauncher/App.config | 6 + .../Confused/bin/Release/ItteBloxLauncher.exe | Bin 0 -> 39936 bytes .../Confused/bin/Release/ItteBloxLauncher.pdb | Bin 0 -> 32256 bytes ItteBloxLauncher/ItteBloxLauncher.csproj | 124 + ItteBloxLauncher/ItteBloxLauncher.csproj.user | 19 + ItteBloxLauncher/LauncherWindow.Designer.cs | 99 + ItteBloxLauncher/LauncherWindow.cs | 220 + ItteBloxLauncher/LauncherWindow.resx | 396 + ItteBloxLauncher/Program.cs | 21 + ItteBloxLauncher/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 73 + ItteBloxLauncher/Properties/Resources.resx | 124 + .../Properties/Settings.Designer.cs | 26 + ItteBloxLauncher/Properties/Settings.settings | 7 + ItteBloxLauncher/Resources/AdminIcon.png | Bin 0 -> 11050 bytes .../bin/Release/ItteBloxLauncher.exe | Bin 0 -> 37888 bytes .../bin/Release/ItteBloxLauncher.exe.config | 6 + .../bin/Release/System.IO.Compression.dll | Bin 0 -> 111984 bytes ItteBloxLauncher/logo.ico | Bin 0 -> 4158 bytes ItteBloxLauncher/obfuscated.crproj | 6 + ...ework,Version=v4.5.2.AssemblyAttributes.cs | 4 + ...ework,Version=v4.6.1.AssemblyAttributes.cs | 4 + .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 800 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7504 bytes .../ItteBloxLauncher.LauncherWindow.resources | Bin 0 -> 14598 bytes ...loxLauncher.Properties.Resources.resources | Bin 0 -> 112907 bytes ...loxLauncher.csproj.AssemblyReference.cache | Bin 0 -> 7168 bytes .../ItteBloxLauncher.csproj.CopyComplete | 0 ...loxLauncher.csproj.CoreCompileInputs.cache | 1 + ...teBloxLauncher.csproj.FileListAbsolute.txt | 11 + ...BloxLauncher.csproj.GenerateResource.cache | Bin 0 -> 1180 bytes .../obj/Debug/ItteBloxLauncher.exe | Bin 0 -> 148480 bytes .../obj/Debug/ItteBloxLauncher.pdb | Bin 0 -> 38400 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 3584 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 ...ework,Version=v4.6.1.AssemblyAttributes.cs | 4 + .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 805 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7681 bytes .../ItteBloxLauncher.LauncherWindow.resources | Bin 0 -> 14598 bytes ...loxLauncher.Properties.Resources.resources | Bin 0 -> 3533 bytes ...loxLauncher.csproj.AssemblyReference.cache | Bin 0 -> 6559 bytes .../ItteBloxLauncher.csproj.CopyComplete | 0 ...loxLauncher.csproj.CoreCompileInputs.cache | 1 + ...teBloxLauncher.csproj.FileListAbsolute.txt | 12 + ...BloxLauncher.csproj.GenerateResource.cache | Bin 0 -> 1064 bytes .../obj/Release/ItteBloxLauncher.exe | Bin 0 -> 37888 bytes .../obj/Release/ItteBloxLauncher.pdb | Bin 0 -> 36352 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 3584 bytes ItteBloxLauncher/packages.config | 5 + packages/DotNetZip.1.15.0/.signature.p7s | Bin 0 -> 9512 bytes .../DotNetZip.1.15.0/DotNetZip.1.15.0.nupkg | Bin 0 -> 913254 bytes .../DotNetZip.1.15.0/lib/net40/DotNetZip.dll | Bin 0 -> 460288 bytes .../DotNetZip.1.15.0/lib/net40/DotNetZip.pdb | Bin 0 -> 589312 bytes .../DotNetZip.1.15.0/lib/net40/DotNetZip.xml | 18536 ++++++++++++++++ .../lib/netstandard2.0/DotNetZip.dll | Bin 0 -> 241152 bytes .../lib/netstandard2.0/DotNetZip.pdb | Bin 0 -> 103352 bytes .../lib/netstandard2.0/DotNetZip.xml | 18031 +++++++++++++++ .../.signature.p7s | Bin 0 -> 9483 bytes .../System.IO.Compression.4.3.0.nupkg | Bin 0 -> 485197 bytes .../ThirdPartyNotices.txt | 31 + .../dotnet_library_license.txt | 128 + .../lib/MonoAndroid10/_._ | 0 .../lib/MonoTouch10/_._ | 0 .../System.IO.Compression.4.3.0/lib/net45/_._ | 0 .../lib/net46/System.IO.Compression.dll | Bin 0 -> 111984 bytes .../lib/portable-net45+win8+wpa81/_._ | 0 .../System.IO.Compression.4.3.0/lib/win8/_._ | 0 .../System.IO.Compression.4.3.0/lib/wpa81/_._ | 0 .../lib/xamarinios10/_._ | 0 .../lib/xamarinmac20/_._ | 0 .../lib/xamarintvos10/_._ | 0 .../lib/xamarinwatchos10/_._ | 0 .../ref/MonoAndroid10/_._ | 0 .../ref/MonoTouch10/_._ | 0 .../System.IO.Compression.4.3.0/ref/net45/_._ | 0 .../ref/net46/System.IO.Compression.dll | Bin 0 -> 111984 bytes .../ref/netcore50/System.IO.Compression.dll | Bin 0 -> 24280 bytes .../ref/netcore50/System.IO.Compression.xml | 430 + .../netcore50/de/System.IO.Compression.xml | 430 + .../netcore50/es/System.IO.Compression.xml | 420 + .../netcore50/fr/System.IO.Compression.xml | 430 + .../netcore50/it/System.IO.Compression.xml | 430 + .../netcore50/ja/System.IO.Compression.xml | 446 + .../netcore50/ko/System.IO.Compression.xml | 446 + .../netcore50/ru/System.IO.Compression.xml | 415 + .../zh-hans/System.IO.Compression.xml | 436 + .../zh-hant/System.IO.Compression.xml | 432 + .../netstandard1.1/System.IO.Compression.dll | Bin 0 -> 23520 bytes .../netstandard1.1/System.IO.Compression.xml | 430 + .../de/System.IO.Compression.xml | 430 + .../es/System.IO.Compression.xml | 420 + .../fr/System.IO.Compression.xml | 430 + .../it/System.IO.Compression.xml | 430 + .../ja/System.IO.Compression.xml | 446 + .../ko/System.IO.Compression.xml | 446 + .../ru/System.IO.Compression.xml | 415 + .../zh-hans/System.IO.Compression.xml | 436 + .../zh-hant/System.IO.Compression.xml | 432 + .../netstandard1.3/System.IO.Compression.dll | Bin 0 -> 24280 bytes .../netstandard1.3/System.IO.Compression.xml | 430 + .../de/System.IO.Compression.xml | 430 + .../es/System.IO.Compression.xml | 420 + .../fr/System.IO.Compression.xml | 430 + .../it/System.IO.Compression.xml | 430 + .../ja/System.IO.Compression.xml | 446 + .../ko/System.IO.Compression.xml | 446 + .../ru/System.IO.Compression.xml | 415 + .../zh-hans/System.IO.Compression.xml | 436 + .../zh-hant/System.IO.Compression.xml | 432 + .../ref/portable-net45+win8+wpa81/_._ | 0 .../System.IO.Compression.4.3.0/ref/win8/_._ | 0 .../System.IO.Compression.4.3.0/ref/wpa81/_._ | 0 .../ref/xamarinios10/_._ | 0 .../ref/xamarinmac20/_._ | 0 .../ref/xamarintvos10/_._ | 0 .../ref/xamarinwatchos10/_._ | 0 .../netstandard1.3/System.IO.Compression.dll | Bin 0 -> 117624 bytes .../win/lib/net46/System.IO.Compression.dll | Bin 0 -> 111984 bytes .../netstandard1.3/System.IO.Compression.dll | Bin 0 -> 125296 bytes 123 files changed, 50901 insertions(+) create mode 100644 .vs/ItteBloxLauncher/v17/.suo create mode 100644 ItteBloxLauncher.sln create mode 100644 ItteBloxLauncher/App.config create mode 100644 ItteBloxLauncher/Confused/bin/Release/ItteBloxLauncher.exe create mode 100644 ItteBloxLauncher/Confused/bin/Release/ItteBloxLauncher.pdb create mode 100644 ItteBloxLauncher/ItteBloxLauncher.csproj create mode 100644 ItteBloxLauncher/ItteBloxLauncher.csproj.user create mode 100644 ItteBloxLauncher/LauncherWindow.Designer.cs create mode 100644 ItteBloxLauncher/LauncherWindow.cs create mode 100644 ItteBloxLauncher/LauncherWindow.resx create mode 100644 ItteBloxLauncher/Program.cs create mode 100644 ItteBloxLauncher/Properties/AssemblyInfo.cs create mode 100644 ItteBloxLauncher/Properties/Resources.Designer.cs create mode 100644 ItteBloxLauncher/Properties/Resources.resx create mode 100644 ItteBloxLauncher/Properties/Settings.Designer.cs create mode 100644 ItteBloxLauncher/Properties/Settings.settings create mode 100644 ItteBloxLauncher/Resources/AdminIcon.png create mode 100644 ItteBloxLauncher/bin/Release/ItteBloxLauncher.exe create mode 100644 ItteBloxLauncher/bin/Release/ItteBloxLauncher.exe.config create mode 100644 ItteBloxLauncher/bin/Release/System.IO.Compression.dll create mode 100644 ItteBloxLauncher/logo.ico create mode 100644 ItteBloxLauncher/obfuscated.crproj create mode 100644 ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs create mode 100644 ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs create mode 100644 ItteBloxLauncher/obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 ItteBloxLauncher/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.LauncherWindow.resources create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.Properties.Resources.resources create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.csproj.AssemblyReference.cache create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.csproj.CopyComplete create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.csproj.CoreCompileInputs.cache create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.csproj.FileListAbsolute.txt create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.csproj.GenerateResource.cache create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.exe create mode 100644 ItteBloxLauncher/obj/Debug/ItteBloxLauncher.pdb create mode 100644 ItteBloxLauncher/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs create mode 100644 ItteBloxLauncher/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs create mode 100644 ItteBloxLauncher/obj/Release/DesignTimeResolveAssemblyReferences.cache create mode 100644 ItteBloxLauncher/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.LauncherWindow.resources create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.Properties.Resources.resources create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.csproj.AssemblyReference.cache create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.csproj.CopyComplete create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.csproj.CoreCompileInputs.cache create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.csproj.FileListAbsolute.txt create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.csproj.GenerateResource.cache create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.exe create mode 100644 ItteBloxLauncher/obj/Release/ItteBloxLauncher.pdb create mode 100644 ItteBloxLauncher/obj/Release/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 ItteBloxLauncher/packages.config create mode 100644 packages/DotNetZip.1.15.0/.signature.p7s create mode 100644 packages/DotNetZip.1.15.0/DotNetZip.1.15.0.nupkg create mode 100644 packages/DotNetZip.1.15.0/lib/net40/DotNetZip.dll create mode 100644 packages/DotNetZip.1.15.0/lib/net40/DotNetZip.pdb create mode 100644 packages/DotNetZip.1.15.0/lib/net40/DotNetZip.xml create mode 100644 packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.dll create mode 100644 packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.pdb create mode 100644 packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.xml create mode 100644 packages/System.IO.Compression.4.3.0/.signature.p7s create mode 100644 packages/System.IO.Compression.4.3.0/System.IO.Compression.4.3.0.nupkg create mode 100644 packages/System.IO.Compression.4.3.0/ThirdPartyNotices.txt create mode 100644 packages/System.IO.Compression.4.3.0/dotnet_library_license.txt create mode 100644 packages/System.IO.Compression.4.3.0/lib/MonoAndroid10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/MonoTouch10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/net45/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/net46/System.IO.Compression.dll create mode 100644 packages/System.IO.Compression.4.3.0/lib/portable-net45+win8+wpa81/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/win8/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/wpa81/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/xamarinios10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/xamarinmac20/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/xamarintvos10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/lib/xamarinwatchos10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/MonoAndroid10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/MonoTouch10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/net45/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/net46/System.IO.Compression.dll create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/System.IO.Compression.dll create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/de/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/es/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/fr/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/it/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/ja/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/ko/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/ru/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hans/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hant/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/System.IO.Compression.dll create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/de/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/es/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/fr/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/it/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ja/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ko/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ru/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hans/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hant/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/System.IO.Compression.dll create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/de/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/es/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/fr/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/it/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ja/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ko/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ru/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hans/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hant/System.IO.Compression.xml create mode 100644 packages/System.IO.Compression.4.3.0/ref/portable-net45+win8+wpa81/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/win8/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/wpa81/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/xamarinios10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/xamarinmac20/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/xamarintvos10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/ref/xamarinwatchos10/_._ create mode 100644 packages/System.IO.Compression.4.3.0/runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll create mode 100644 packages/System.IO.Compression.4.3.0/runtimes/win/lib/net46/System.IO.Compression.dll create mode 100644 packages/System.IO.Compression.4.3.0/runtimes/win/lib/netstandard1.3/System.IO.Compression.dll diff --git a/.vs/ItteBloxLauncher/v17/.suo b/.vs/ItteBloxLauncher/v17/.suo new file mode 100644 index 0000000000000000000000000000000000000000..2f9f9074a31a5fd455a1208419ac22c7f327b078 GIT binary patch literal 44032 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 veSRP=8{t`cT-d#Mm)U=eKjD + + + + + diff --git a/ItteBloxLauncher/Confused/bin/Release/ItteBloxLauncher.exe b/ItteBloxLauncher/Confused/bin/Release/ItteBloxLauncher.exe new file mode 100644 index 0000000000000000000000000000000000000000..62c4644cfcf670b76ee124c24146842eb93580c9 GIT binary patch literal 39936 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 literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/Confused/bin/Release/ItteBloxLauncher.pdb b/ItteBloxLauncher/Confused/bin/Release/ItteBloxLauncher.pdb new file mode 100644 index 0000000000000000000000000000000000000000..b8ba4d171bb8bd8cd326e90e6865ab0ec20693fe GIT binary patch literal 32256 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 + + + + Debug + AnyCPU + {CDF707D1-7C65-464C-BD7F-95D7FF4D706A} + WinExe + ItteBloxLauncher + ItteBloxLauncher + v4.6.1 + 512 + true + true + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + AnyCPU + true + full + false + ..\..\..\..\Downloads\revival\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + logo.ico + + + + + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + + + + + + + + + + + + + + Form + + + LauncherWindow.cs + + + + + LauncherWindow.cs + + + ResXFileCodeGenerator + Designer + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + + + + + + + + False + Microsoft .NET Framework 4.5.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + + \ No newline at end of file diff --git a/ItteBloxLauncher/ItteBloxLauncher.csproj.user b/ItteBloxLauncher/ItteBloxLauncher.csproj.user new file mode 100644 index 0000000..6ed60fe --- /dev/null +++ b/ItteBloxLauncher/ItteBloxLauncher.csproj.user @@ -0,0 +1,19 @@ + + + + publish\ + + + + + + en-US + false + + + + + Project + itblox://53640 + + \ No newline at end of file diff --git a/ItteBloxLauncher/LauncherWindow.Designer.cs b/ItteBloxLauncher/LauncherWindow.Designer.cs new file mode 100644 index 0000000..2adc342 --- /dev/null +++ b/ItteBloxLauncher/LauncherWindow.Designer.cs @@ -0,0 +1,99 @@ + +namespace ItteBloxLauncher +{ + partial class LauncherWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LauncherWindow)); + this.button1 = new System.Windows.Forms.Button(); + this.Progress = new System.Windows.Forms.ProgressBar(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.Status = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // button1 + // + this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel; + resources.ApplyResources(this.button1, "button1"); + this.button1.Name = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // Progress + // + resources.ApplyResources(this.Progress, "Progress"); + this.Progress.Name = "Progress"; + // + // pictureBox1 + // + resources.ApplyResources(this.pictureBox1, "pictureBox1"); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.TabStop = false; + // + // label1 + // + resources.ApplyResources(this.label1, "label1"); + this.label1.Name = "label1"; + // + // Status + // + resources.ApplyResources(this.Status, "Status"); + this.Status.Name = "Status"; + // + // LauncherWindow + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.button1; + this.ControlBox = false; + this.Controls.Add(this.Status); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.Progress); + this.Controls.Add(this.button1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "LauncherWindow"; + this.Load += new System.EventHandler(this.LauncherWindow_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + public System.Windows.Forms.ProgressBar Progress; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + public System.Windows.Forms.Label Status; + } +} \ No newline at end of file diff --git a/ItteBloxLauncher/LauncherWindow.cs b/ItteBloxLauncher/LauncherWindow.cs new file mode 100644 index 0000000..1abda25 --- /dev/null +++ b/ItteBloxLauncher/LauncherWindow.cs @@ -0,0 +1,220 @@ +using Microsoft.Win32; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Net; +using System.Threading; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ItteBloxLauncher +{ + public partial class LauncherWindow : Form + { + string[] args = Program.args; + BackgroundWorker bg; + + public LauncherWindow() + { + InitializeComponent(); + bg = new BackgroundWorker(); + bg.DoWork += ExtractTask; + bg.ProgressChanged += UpdateProgress; + bg.WorkerReportsProgress = true; + } + + public string Get(string uri) + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); + request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; + + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + using (Stream stream = response.GetResponseStream()) + using (StreamReader reader = new StreamReader(stream)) + { + return reader.ReadToEnd(); + } + } + + private void UpdateProgress(object sender, ProgressChangedEventArgs e) + { + Progress.Value = e.ProgressPercentage; + } + + private void ExtractTask(object sender, DoWorkEventArgs e) + { + string downloadserver = Get("http://ittblox.gay/api/launcher/setupsite.php"); + string year = args[0].Substring(6, 7).Replace("/", string.Empty).Replace(":", string.Empty); + string vrsn = Get("http://ittblox.gay/api/launcher/version" + year); + string dir = Application.StartupPath + "\\" + year; + if (Directory.Exists(dir)) + Directory.Delete(dir, true); + using (var client = new System.Net.Http.HttpClient()) + using (var stream = client.GetStreamAsync(downloadserver + "/" + year + ".zip").Result) + { + var basepath = Path.Combine(dir); + System.IO.Directory.CreateDirectory(basepath); + + var ar = new System.IO.Compression.ZipArchive(stream, System.IO.Compression.ZipArchiveMode.Read); + var i = 0.0; + foreach (var entry in ar.Entries) + { + i += 1.0; + int percentage = Convert.ToInt32(i / (double)ar.Entries.Count * 100); + bg.ReportProgress(percentage); + //MessageBox.Show(percentage.ToString()); + var path = Path.Combine(basepath, entry.FullName); + + if (string.IsNullOrEmpty(entry.Name)) + { + System.IO.Directory.CreateDirectory(Path.GetDirectoryName(path)); + continue; + } + + using (var entryStream = entry.Open()) + { + System.IO.Directory.CreateDirectory(Path.GetDirectoryName(path)); + using (var file = File.Create(path)) + { + entryStream.CopyTo(file); + } + } + } + } + File.WriteAllText(Application.StartupPath + "\\version" + year + ".txt", vrsn); + LaunchClient(year); + return; + } + + void UpgradeAndLaunch(string year, string vrsn) + { + string downloadserver = Get("http://ittblox.gay/api/launcher/setupsite.php"); + if (downloadserver == "") + { + MessageBox.Show("Download server is not available"); + Application.Exit(); + } + else + { + ///Status.Text = "Downloading..."; + bg.RunWorkerAsync(); + } + return; + } + + public async Task LaunchClient(string year) + { + Status.Text = "Launching"; + string port = args[0].Substring(13, 5); + string token = args[0].Substring(18, 50); + string placeid = args[0].Substring(68).Replace("/", string.Empty); + string path = (string)Registry.CurrentUser.OpenSubKey("SOFTWARE\\Classes\\itblox").GetValue(year); + try + { + switch (year) + { + case "2013": + var proc13 = Process.Start(path, "-a \"http://ittblox.gay/\" -t 1 -j \"http://ittblox.gay/game/join.php?port=" + port + "&token=" + token + "\""); + while (string.IsNullOrEmpty(proc13.MainWindowTitle) && !proc13.HasExited) + { + await Task.Delay(500); + proc13.Refresh(); + } + break; + case "216c": + var proc16c = Process.Start(path, "-a \"http://ittblox.gay/\" -t 1 -j \"http://ittblox.gay/game/2016/join.php?placeId=" + placeid + "&port=" + port + "&token=" + token + "\""); + while (string.IsNullOrEmpty(proc16c.MainWindowTitle) && !proc16c.HasExited) + { + await Task.Delay(500); + proc16c.Refresh(); + } + break; + case "2016": + var proc16 = Process.Start(path, "-a \"http://ittblox.gay/\" -t 1 -j \"http://ittblox.gay/game/2016/join.php?placeId=" + placeid + "&port=" + port + "&token=" + token + "\""); + while (string.IsNullOrEmpty(proc16.MainWindowTitle) && !proc16.HasExited) + { + await Task.Delay(500); + proc16.Refresh(); + } + break; + case "s16c": + var procst16c = Process.Start(path); + while (string.IsNullOrEmpty(procst16c.MainWindowTitle) && !procst16c.HasExited) + { + await Task.Delay(500); + procst16c.Refresh(); + } + break; + case "ibox": + var procbox = Process.Start(path, args[0]); + while (string.IsNullOrEmpty(procbox.MainWindowTitle) && !procbox.HasExited) + { + await Task.Delay(500); + procbox.Refresh(); + } + break; + case "st16": + var procst16 = Process.Start(path); + while (string.IsNullOrEmpty(procst16.MainWindowTitle) && !procst16.HasExited) + { + await Task.Delay(500); + procst16.Refresh(); + } + break; + default: + MessageBox.Show("Invalid year!"); + Application.Exit(); + break; + } + } + catch (Exception a) + { + MessageBox.Show(a.ToString()); + } + Application.Exit(); + return; + } + + private void LauncherWindow_Load(object sender, EventArgs e) + { + + if (args.Length > 0) + { + if (Uri.TryCreate(args[0], UriKind.Absolute, out var uri) && string.Equals(uri.Scheme, "itblox", StringComparison.OrdinalIgnoreCase)) + { + Status.Text = "Checking for updates"; + string year = args[0].Substring(6, 7).Replace("/", string.Empty).Replace(":", string.Empty); + string vrsnpath = Application.StartupPath + "\\version" + year + ".txt"; + string vrsn = Get("http://ittblox.gay/api/launcher/version" + year); + if (File.Exists(vrsnpath)) + { + if (vrsn == File.ReadAllText(vrsnpath)) + { + Progress.Value = 100; + LaunchClient(year); + } else { + Status.Text = "Upgrading ItteBlox"; + UpgradeAndLaunch(year, vrsn); + return; + } + } else { + Status.Text = "Upgrading ItteBlox"; + UpgradeAndLaunch(year, vrsn); + return; + } + } + } + else + { + Status.Text = "Join from the website to play!"; + Progress.Value = 100; + } + } + + private void button1_Click(object sender, EventArgs e) + { + Application.Exit(); + } + } +} diff --git a/ItteBloxLauncher/LauncherWindow.resx b/ItteBloxLauncher/LauncherWindow.resx new file mode 100644 index 0000000..1ce6412 --- /dev/null +++ b/ItteBloxLauncher/LauncherWindow.resx @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 12, 129 + + + 360, 20 + + + + 0 + + + cancel + + + button1 + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 4 + + + 12, 100 + + + 360, 23 + + + 1 + + + Progress + + + System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + + 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 + + + + 12, 12 + + + 360, 50 + + + + Zoom + + + 0 + + + pictureBox1 + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + 0, 0 + + + 100, 23 + + + 0 + + + label1 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + Microsoft Sans Serif, 15.75pt + + + 12, 65 + + + 360, 32 + + + 2 + + + Loading... + + + MiddleCenter + + + Status + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + True + + + True + + + 6, 13 + + + 384, 161 + + + + AAABAAEAHyAAAAEAIAAoEAAAFgAAACgAAAAfAAAAQAAAAAEAIAAAAAAAgA8AABILAAASCwAAAAAAAAAA + AAC3bjEUt24xf7duMeG3bjH1t24x9LduMe23bjHht24x1rduMcu3bjHAt24xtbduMau3bjGgt24xl7du + MY63bjGEt24xerduMXC3bjFlt24xXLduMVO3bjFIt24xPLduMTC3bjEet24xBrduMQAAAAAAAAAAAAAA + AAAAAAAAt24xfrduMfm3bTD/uG8z/7hwNP+3bzL/t20w/7ZsLv+2bC7/tmwu/7ZsLv+2bC3/tmwt/7Zs + Lv+2bC7/tmwu/7ZsLv62bS/9tm0v/LZtL/m2bS/2t20w87duMO63bjDot24x2LduMZ+3bjE7t24xA7du + MQAAAAAAAAAAALduMd63bTD/y5dt/+XNuv/mz7z/4siz/96+pf/bt5n/2LOU/9auj//TqIj/0KJ8/86c + cv/MmW//ypZs/8iTZ//GjmH/w4hX/8KEUf/Bgk7/v39L/717Rf+7dj3/uXM4/7duMP+2bS//t24x6Ldu + MV23bjEAt24xAAAAAAC3bjH0uG8z/+XMuf////////////////////////////////////////////7+ + /v/+/v3//fz7//z7+f/8+fj/+/f1//r08P/48uz/9+/p//Xs5f/y59//8OHV/+vYyv/dvKP/wYRS/7Zt + L/+3bjHgt24xL7duMQAAAAAAt24x9LhwNP/mz7z///////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////+3d + 0P+/f0r/t20v/7duMZC3bjECt24xALduMeu3bjH/4cSu//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////27eb/7dtMP+3bjHht24xKLduMQC3bjHbtmwu/9y6nf////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////Ln3v++fUj/t20w/7duMXK3bjEAt24xzrZsLv/atpj///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/fz/0KJ9/7ZsLv+3bjG7t24xDrduMca2bC7/2LOU//////////////////// + /////////////////////v7/9u7o/+/h1//x5Nv/+vbz//////////////////////////////////// + /////////////////////////////+XMuf+4cDX/t24x7bduMUO3bjG9tmwu/9evkf////////////// + ////////////////////////+PLt/8iQZP+6dj7/u3hA/8+gev/79vT///////////////////////// + ///////////////////////////////////37+r/w4ZV/7ZtL/+3bjGpt24xubZsLv/Xr5H///////// + //////////////////////////////Pn3/+9ekT/t2wv/7dsL/+7dz//8OLY//////////////////// + /////////////////////////////////////////////9y5nf+3bjH/t24x97duMbm2bC7/16+Q//// + ///////////////////////////////////06uL/vXtF/7ZrLP+2bC3/uXM5/+zbz/////////////// + //////////////////////////////////////////////78/P/cuZ3/t24y/7duMfy3bjG3tmwu/9Sr + iv///////////////////////////////////////Pn3/9u4m//Kl23/xYtb/8eRZf/z6OH///////// + //////////////////////////////////////////////Tq4//VrIv/unU7/7duMP+3bjG+t24xrbZs + Lv/TqIf//////////////////////////////////////////////v7//fv6//r39P/69fL//v7+//// + ///////////////////////////////////8+ff/7t/T/9m0lv/Bg1D/t20w/7dtMP63bjHCt24xM7du + Mau2bC7/06iH//////////////////////////////////////////////////////////////////// + /////////////////////////////////////v//27ec/7p0Ov+2bC7/tm0v/7duMe63bjGIt24xHLdu + MQC3bjGrtmwu/9Ooh/////////////////////////////////////////////////////////////// + /////////////////////////////////////////////+7e0v/Onnj/vHpD/7dtMP+3bjHWt24xILdu + MQAAAAAAt24xq7ZsLv/TqIf///////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////v39/+fPvv+7dz//t20w/rdu + MXW3bjEAt24xALduMau2bC7/06iH//////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////+/fz/06eF/7Zs + L/+3bjHWt24xILduMQC3bjGrtmwu/9Ooh//////////////////////////////////////////////+ + /v/48u3/9ezm//r39P///v7///////////////////////////////////////////////////////Dh + 1v+9e0T/t20w/rduMXK3bjEAt24xq7ZsLv/TqIf///////////////////////////////////////// + ///t28//w4hY/79/Sv/GjV//17CR//Tq4v////////////////////////////////////////////// + ///+/fz/0qaD/7ZsLv+3bjHFt24xE7duMau2bC7/06iH//////////////////////////////////// + ////////2bSX/7VrLf+2bS//tmwu/7VrLf/NnHT//Pr5//////////////////////////////////// + /////////////+jSwf+5cTb/t24x67duMTi3bjGrtmwu/9Ooh/////////////////////////////// + /////////v38/86ddv+2ay3/t20w/7ZtL/+1aiv/x5Bi//v49f////////////////////////////// + ///////////////////z6eH/vnxH/7dtMPi3bjFXt24xq7ZsLv/TqIf///////////////////////// + //////////////79/f/WrY3/unQ7/7x5Qv/Bgk//zJlx/+vXyP////////////////////////////// + ////////////////////////+PLt/8KFUv+2bS/9t24xabduMau2bC7/06iH//////////////////// + ////////////////////////+/bz/+/f0//x5Nv/9+/q//37+f////////////////////////////// + //////////////////////////////Lm3f/AgEz/tm0v/bduMW+3bjGrtmwu/9Ooh/////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////Po3//Jkmf/t24x/7duMei3bjE/t24xq7ZsLv/TqIf///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////Hl3P/Hj2H/tmwv/7duMfa3bjF4t24xBLduMay2bC7/06iH//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////7+/+zbzv/EiVr/tmwv/7duMfO3bjF0t24xB7duMQC3bjGotmwu/8+f + eP/+/v3///////////////////////////////////////////////////////////////////////// + ////////////////////////+vbz/928of++fEb/tm0v/7duMe63bjFtt24xBbduMQAAAAAAt24xlLdt + MP++fUj/17GS/+bNu//u3M//8ube//bt5//48ev/+vTw//v39f/8+ff//Pv5//38/P/+/v7///////// + ////////////////////////9Orj/9Cge/+3bzP/t20v/7duMd23bjFat24xA7duMQAAAAAAAAAAALdu + MUG3bjHht20w/7ZsLv+4cDT/unQ6/716RP/AgEz/wYNP/8OIVv/GjmH/yJJn/8qWa//Nmm//z6B5/9Op + if/YsZP/3Lqf/+LHsv/n0L3/3byi/8OGVf+2bTD/t24x/LduMau3bjEtt24xALduMQAAAAAAAAAAAAAA + AAC3bjEDt24xOLduMZG3bjHIt24x37duMO23bTDztm0v+LZtL/y2bS/9tmwu/rZsLv+2bC7/tmwu/7Zs + Lf+2bC7/tmwu/7ZsL/+3bjL/uHA0/7duMP+2bS//t24x6rduMYC3bjEQt24xALduMQAAAAAAAAAAAAAA + AAAAAAAAAAAAALduMQC3bjECt24xEbduMSa3bjE5t24xSrduMVi3bjFkt24xb7duMXm3bjGDt24xj7du + MZy3bjGrt24xu7duMc23bjHft24x77duMfe3bjHzt24xs7duMUO3bjEEt24xAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAD4AAAAOAAAADgAAAAYAAAACAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAgAAAAYAAAAGAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA + AAYAAAAOAAAAPgAAAH7AAAD+ + + + + CenterScreen + + + ItteBlox Launcher + + + LauncherWindow + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ItteBloxLauncher/Program.cs b/ItteBloxLauncher/Program.cs new file mode 100644 index 0000000..c03ccfb --- /dev/null +++ b/ItteBloxLauncher/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Windows.Forms; + +namespace ItteBloxLauncher +{ + static class Program + { + public static string[] args; + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main(string[] arguments) + { + args = arguments; + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new LauncherWindow()); + } + } +} diff --git a/ItteBloxLauncher/Properties/AssemblyInfo.cs b/ItteBloxLauncher/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..a1f2e2a --- /dev/null +++ b/ItteBloxLauncher/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ItteBloxLauncher")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ItteBloxLauncher")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("cdf707d1-7c65-464c-bd7f-95d7ff4d706a")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ItteBloxLauncher/Properties/Resources.Designer.cs b/ItteBloxLauncher/Properties/Resources.Designer.cs new file mode 100644 index 0000000..de8a8fe --- /dev/null +++ b/ItteBloxLauncher/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ItteBloxLauncher.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ItteBloxLauncher.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap AdminIcon { + get { + object obj = ResourceManager.GetObject("AdminIcon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ItteBloxLauncher/Properties/Resources.resx b/ItteBloxLauncher/Properties/Resources.resx new file mode 100644 index 0000000..8c15845 --- /dev/null +++ b/ItteBloxLauncher/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\AdminIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ItteBloxLauncher/Properties/Settings.Designer.cs b/ItteBloxLauncher/Properties/Settings.Designer.cs new file mode 100644 index 0000000..daac843 --- /dev/null +++ b/ItteBloxLauncher/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ItteBloxLauncher.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/ItteBloxLauncher/Properties/Settings.settings b/ItteBloxLauncher/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/ItteBloxLauncher/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ItteBloxLauncher/Resources/AdminIcon.png b/ItteBloxLauncher/Resources/AdminIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..da251d418f614151d251f106029ba9b0fde84cb2 GIT binary patch literal 11050 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 literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/bin/Release/ItteBloxLauncher.exe b/ItteBloxLauncher/bin/Release/ItteBloxLauncher.exe new file mode 100644 index 0000000000000000000000000000000000000000..63b7702cd0e4bef0d9bf8d0089911d8e868e4e9a GIT binary patch literal 37888 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 Bvb_KR literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/bin/Release/ItteBloxLauncher.exe.config b/ItteBloxLauncher/bin/Release/ItteBloxLauncher.exe.config new file mode 100644 index 0000000..bae5d6d --- /dev/null +++ b/ItteBloxLauncher/bin/Release/ItteBloxLauncher.exe.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/ItteBloxLauncher/bin/Release/System.IO.Compression.dll b/ItteBloxLauncher/bin/Release/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..f8468a652440be5ecce5ee80442d8a5e66c99d37 GIT binary patch literal 111984 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 literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/logo.ico b/ItteBloxLauncher/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..74adde068ea60c18d3a29bb312ae1e706d60fe1f GIT binary patch literal 4158 zcmchaYfw~W7{^am_MsWG%k-&9J~hmg2~v$_sbv?(n(Q*AV>OM9j#Gl5A_3l*(83%Q z)R9aGw5fEwl&LKDL{tdnGLV2RmzLrpcXk(8*xmE*|D4@}u;IEivz?vao^#&wp7Vd7 zbDrmUpI1@t;BQ)h!v6pzaH^s_tSCw#nMURlX_qbTK1F%pUKd&e{|sw_A0k_ciS!dI z>2jY}bAN@LC+EmN%Tnvf$8EYe@Sc4H5v|SK140?=|CddM)94x>{P#Mn_C-@ zzj>jqzs{{)Cfa{weC=0l)#;$GZq{Oix;bPDxh&e^&t5nB*+6$2dQ3Iw``d`&0gKn} z<6RVg&Ww0kd|vX$0+J`%H9sYd*L|eTX6{09;tFI(%|%Z1e3Ylh!aiUfx$eusU{5;= zzj#;o`D4`1@=p)ZYA25A<9T9jZ_;u` z#_A`u+?KU|Had;vp545js}2WT+RU44f*r&lcK?3-E3fxCh6Z8GJcJVFze_vcM^VyB zSlUcp?-_m3+Wr@=o!E)&4Rfd)B-;7pq-a+i{c?2I@sH_mPWv#12dx58wgAeEXINC-LZv$j_ykBc0Z(U5}d$Y))1k1MBfehE$>j}XZ% z{?X=8x*IA{_H8tBV;AT-MdsuH(Ur}g+VUn;rxUH^`C43XzLfX9LA2fY&2IfGNKUKz zaXa6=HkXXpJ|Vm5Tash?J6kk=qqFIczwN%)RLvM=esI~Y=X0O!?qWO_CM?zF!^^uq zLe0-fkhu3{6Wc3)h}ZM^CEEPpMC`tPHW}wuvu2{tN^Hn+X-Xs z*p_*Fmap0}?y}SEkF${1|pyzfanh8z$s$dR6YXQFn>&+D=rT+{JjE zgWQ-GS(`0p-L@7THN`&ZN+(VmEoXJ1QOBYxYvO1`xqHS4_pL%XlJ4n=#G>+wB6&1iBLIpLRlE`~Gy zJB?+yxMP{F%QZuAB)Nx3ZaXU4DRC5b&AX*VdQSnb?5W_ z5;Iam)|}ppmeL$_*OkNE(tv@kR@nMFwAx?R05T`an!w2#z}x&Ob9F`fMy{)_sc>B3*oZ@CO_mf7!!&`3BPx_C(=a!v$LGLeG LqPgX~qNx7>zgSTk literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obfuscated.crproj b/ItteBloxLauncher/obfuscated.crproj new file mode 100644 index 0000000..8139279 --- /dev/null +++ b/ItteBloxLauncher/obfuscated.crproj @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs b/ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs new file mode 100644 index 0000000..f1a77a1 --- /dev/null +++ b/ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.5.2.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5.2", FrameworkDisplayName = ".NET Framework 4.5.2")] diff --git a/ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs b/ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs new file mode 100644 index 0000000..3aa5318 --- /dev/null +++ b/ItteBloxLauncher/obj/Debug/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")] diff --git a/ItteBloxLauncher/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/ItteBloxLauncher/obj/Debug/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000000000000000000000000000000000000..3f785459a81e2296ba648fd431714f175a412ce3 GIT binary patch literal 800 zcmcJLy$ZrG6h@Op#HZ+}OK4F<-TdpOhzf!Pq>Z=bV$wivvHF@mguaG#a?F(RgAdN( zba;m`#$4%>asi}$PhL-yKJEQawgnKEvI@DER_!H5%9SKE+Ctuy3z nxrB7_mMB8fS3p=+{sd)E370ikm41sbDdtK65$33|etIRof@A{T literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ItteBloxLauncher/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000000000000000000000000000000000000..b3cee18039d4f7ca0b48042bd0bfd787b284c880 GIT binary patch literal 7504 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 M)WC(P;bBDO50Z8~5&!@I literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obj/Debug/ItteBloxLauncher.exe b/ItteBloxLauncher/obj/Debug/ItteBloxLauncher.exe new file mode 100644 index 0000000000000000000000000000000000000000..d6d8ea35704b8633d03a7294d84571ea720b225e GIT binary patch literal 148480 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

G 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 literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll b/ItteBloxLauncher/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..16d66f8c0d0ea6e213950c509c3af21f0880f471 GIT binary patch literal 3584 zcmeHJTWl0n82-=fc6Zs9+AdfiqE0C_y)kK1qM(TFwgna_)NTu6h%h^Qx{S`wS!ZUU zB>`&)Mhzws5)!;5#^8$*!h;FK%NvRD0pp9lnLy%$k3JBiCW_xVJHwVsh{}_RXZL(_ z{_nq>bN+Lg8Grt5iV;y9^~MdNOL)pMr10J_4|VgSpEc8`i>|a^V%x8@PaUv*z2b?I zXO?x#bX^hX1+IHlSGQe#bZ1^Kiy}7`FHWxxLr;tmZD$&t`DB|J^>&q3>5Z(PC=Eud zu^)HisiO{|61Au{baLFXL{HieA@qsS&~a%h|Mh1mN($vU#NAnI-W`XCn(nT-H>(q+ z7FeVpZ&@H40iO*ZUswcyZsA-ZsiG6@H$3hLD;&cRXgRmr1_U|__Ft6~GOs9dY#KFC zUprAB2F?`w&*3qx3*K0`9-<}v8m&hN#A>CZ!1&TXSvt|TiaZFFZ!s0E3-eD4*r)wQ zKx1-V+SRO^dMSl4h{FgH?MU#t~mx3gjxC zP6Y60jlGmy7!P{}@!%E4)4CSJn0j{kNyO-Ch7drj%}WzFX7gLKEX<5tf`e;~eq*qI za6nEHxpRPL(S65J>@oOsp?2g0&vr|`v{;uQD&pBOou~KEmfNyp^K@<$&vTIF)H||{ zC_t74q1f&RKV))?(C=)J+G^{Pfr!wmBH3z07_8bt@*KcVori`{CvAyNF@#4+P!D@w zOVCz@f6$xS1N04C()2ZP@K?bk=sZcAhS)WhplR((v^Q$Yv}W3>xhzd*=m@ZtNqm(w zXs1Y8_A6W&>(kP70=(?6)@v&-cLnf{(>2#_o_By1-c0zeg#nfo2 zl1?r^roE+d#^?ZYeMDmzf$Vh!FiqXS78+2@dWANyjfPcw4o7b_&C&8$FXh1W1GQKd z^N{J;=#TVcvd}5{(`p0eNpu+9_fZF700&Bz!q+v2Z20i zS<~kst+Uk~`+CYWa12m>FpXRl#=bV6Lt`XgXDn)cOH08>60i z2osG&=^|Y223QL2(1a%{+zV{(8-c5aO;C`XY5iHS;b03!U1DZMBhFnMt2=LBMer z&u%xX*wRQ|J+%~VHo1Ry7GA`J)X+z3`@NPU-{<9mGpEkUwj2fcaoiOSZnjz4P9{~! zC5sM##WZLFD5#>OfNVT{u#@U3VC%tFadOq=0 z+mAag{z7q`u~bYa)__K9YlE(_=4RC%NG4-irZdxtdo}ZP>u_AB%veI|Gh^{2%XBv+ zwUwDQU{*F~x+T*jEpwS%>f+(OyH>2d`bO%)Gy7g?{Vx4vERpF%?M7|Fb&~0n(2Xky zVPtcSgeJUzSUe@QfNlwEBs8U1_>J_4d?8F}ZM!|Qg3~rOYw?QQBvZIc4*3jrNpPz;{DEGnWwa>|O>Ko=h;{5OWpUl8t DKTS1$ literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/ItteBloxLauncher/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/ItteBloxLauncher/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs b/ItteBloxLauncher/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs new file mode 100644 index 0000000..3aa5318 --- /dev/null +++ b/ItteBloxLauncher/obj/Release/.NETFramework,Version=v4.6.1.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.6.1", FrameworkDisplayName = ".NET Framework 4.6.1")] diff --git a/ItteBloxLauncher/obj/Release/DesignTimeResolveAssemblyReferences.cache b/ItteBloxLauncher/obj/Release/DesignTimeResolveAssemblyReferences.cache new file mode 100644 index 0000000000000000000000000000000000000000..3193b37c404d4e90bb463fed5c5dc5d75717ab32 GIT binary patch literal 805 zcmcJLu?oU46h)Io#INY6OHdS1H(Twdhzf!Pq>ZoTVbVZevHF{Sg#Lzga?F(R!i94< zn|OanIPWmVc$O^W&e_ssCQ4BQMg7NYI*@xPz(J)TS`vZDH3G>EDrd2ecC5SDx_mN|k5;U*CYNq{ID3HiWO@xxeFPy)my2}p`{nbB@b9=toVnVGe% zxcn@6f>a(c>0VvN2cat3Dt>5PYK`aUZ@Q;v)Zc6>ol2$t!H2%-IWvL6d&XTQwQL#t zCD#%2>n8HJv{z&hNKq}X=5sGWX)eX1;(}eEzkF^b@=c`Rk$}i3=I3*3QPbz{&(LYe zEf9~Ig;Hz2wb&{az4-zwv1x*Qa01ffi2EMlRfPd1!&i!hAt<}XR8@qL(N}TsRp$G0 z2fSsiA!z!Y)m;OEW~I+!?-eOpyj|fwTymN4xW^3ids3~w-imy`qF4YsQf>8{8mx(J z7vE{CNZ&(yKc~tDQ*AJVVfCn~!8}JL`ZjM1sh|ukhOVdzZE$|W*>x4)dw-{{x^CCY z{CE{NkJKL=mGjX~Z4OPd%oVssDh~R5=ozN!z?8eW#>}QZ-#%1vI#jZS9wMtQC}?wS zRA)FKgN7L(7hXd}2c2;M<=tXnnzXD`Y7*r{ zI-R!ggEBSo=XAZJ4FnjTxW2BTfU|!D0gAi!Q*_pw;_KJ%>4H1rCG#U#V_dztKj>OF zii>tW7id>1pErklZ0>`%*y19acjp(1OQks|JXl)Kzi%EN=~R>O!}@65`jM+kr^g|h zL=+8nQxeKQ@|YU&1{w!w5-~Im&{6$xuBRyv&P<}1%}h~ongpf;smv)9_%%Z!Lt>W1 zX%w^88I&pOEQ<18t(Q4HtYad*!xT7!WY@8uuQmobWPW?jUa*V#ehS)4H&=J}t#hbJ zuRL^KXv{wy#yt>@mXUJ7Q4mV)RE>ehzTADvBH?a=I$9x{Z=D+Wz%)2z(3pQVFh{C^ zmj3o2As!|~w#!gY<`c5xJc=9dPPL!+cc*M+vByQ~ksDZ(i;b}^kb+*XPq91|Xzp7V zu{4Xd1-n!z6_+xf;s2@GEcux})+G}54i|xEUB>d1?fJfSB`(1(WN9g4&6NMw&@q_1 zwK0Xy#Tk9>&hCSSyF)kUy6h#_r7zC?LUG9<4igD(I&n#gMF;tee8<>dCT(SmO^3r*i1ap5 zDmRH%>3)s=v@(O{kEX zBOA8o?2=t@ki$9x%-q5Wy~xgQ5qdL8JD-EGpBU5K;dc-%ND}Q87oObFc15Z{$G*Lb zkZzKYzXpB`bT4U763|mFekZgk%7(@{{5Xdn>21}hDR7)oZs09pprxVSa&X|iHoJ^W{=#kni5mS1yL{4eG)(uhl zivb1B60;?8Z_T4fX5Fj>RK1=^NK}~1Jfu3=m^mZNsW=WONa&gTYkaKz*L%qEu{L-= Hw0`yuDWTPJlO$4P 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 HJsR|1w~t8g literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obj/Release/ItteBloxLauncher.csproj.AssemblyReference.cache b/ItteBloxLauncher/obj/Release/ItteBloxLauncher.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..28c875af911b6fde725263fcad556c94337d7c55 GIT binary patch literal 6559 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 Bvb_KR literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obj/Release/ItteBloxLauncher.pdb b/ItteBloxLauncher/obj/Release/ItteBloxLauncher.pdb new file mode 100644 index 0000000000000000000000000000000000000000..491b03d7f40d04a1d99eb684f39f2aa6055cc6fa GIT binary patch literal 36352 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 K*Mi%3HSquCM>dfF literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/obj/Release/TempPE/Properties.Resources.Designer.cs.dll b/ItteBloxLauncher/obj/Release/TempPE/Properties.Resources.Designer.cs.dll new file mode 100644 index 0000000000000000000000000000000000000000..47044a1b2c254db1ca6ce729e246ab867bcddb08 GIT binary patch literal 3584 zcmeHJ+iw(A82`@fc6Zs9+AfF?QKyueUSQIuL_rbTZA)38P`fP`LoBnir_1QWx+0-mxAD7-h!L*4w?SIzXrqRVX;*!Ih9lLu^HuXv*5 znPuHFT~`Epf$Lt?)ooWF-kI0SqR5TKi_@#a(BmUS+nGkwXZ94L-mcIpy^-}2rNL-5 z_R}srb<_b=q88PLPL5la=t=t_gg!AEcukthfBhMXl0w;oxI1gjyW;>+)7>@qW_6;} z0*e&nEem8L;Ijeb^NRq`Eu1SPRdk~LhQ}RYg<}{1E$4RIfIw%#{;P6a<`qSbO``@{ z(?+xg180i;=kU1J32!W1H_?(_jW!?zVztsyV0`JHES*@hiaZFFA21cI6Z20C*r)wQ zKx1-V+SRO^dMJf3h{FgI9YW#t>gw3gjxC zP6Y60jXjiH7!P{}@!%E4(>fQ!n7ViQNyO-Eh7drj%}WzFX7gLKEX<5tf`jXfUZcOa zzfVpQxpRQ0(S7?->@oOsqPFJ)&vr|`v{;`YD&pBbm8TETmfNy@bSgKD=UK>d>g`!a z6d=ojP;B>upD?*a=sN4CWwmw5KtyO&k!&?03|4I+c@E&G&O<|}leR=B8N#C^sGEJL zC1|U{KjI!Dr`A$FA|XiEDQ?M>Q4S~G3cT$ZMH=?JiuNqm(w zXeUWp_9|Q%Tcf4vIC$A#t=C%KTIizov(^R166T&4+Y4l=jjrq_0DX(-BA)L+KhjhD=;j(y3Ha>>dV4AvsE!3x&4GL}GG8$CvIUK#!G)K#0J(L5}3)Es+ z%tJ;vK}%={B0Nopn1MZfh72(0fDhAU8lrak3D`r+*%0*ubIQ_EZ425**h+emHp-Zo zSxl|!ly(Ahn4?p`-`M-Wme|M8YtYNu0LwT~p5`PlL5nCp53^g!H&_6PTLq>{J;=%L~JgXije?i;hzNmT@k932Tiep=5U<)_TgFv3M ztm$(aDcXVXvYt5Pn+1pG12f<>B+3=r;oc~Bxd);+7~p6Ys!-jehVXW()5E+_EtR;p zL%35u_wJ^Y;p+~!^;=ie`c?y-;Ep+~T7F$0W=5JpRj?g9n5%0KnogA?wSK_M#;|7| z!bBrcx(JuM0hWS0H13HC_X3;y#zdGb-x%h;UBaXd%QuRSBkSKX4Evxc?PI2^mS(V6 zw%wd1-1;Eg8M{3`GuLi>6ho;LEGYWeUv4ttu|6CGwD+<2srNI z+3jW(TN=r$r2b@@DG%v(vA%{+NC$mdJFVcA+-mI>~fM=)x6* zFtWK;LK9v0Iz7Qt0WxGAIg3~rKYw?QQB$K#H4*3jrNp4e-snIK^(A{}l>1=x+UMk1^$l|$asGGxPiEjR D?L#%3 literal 0 HcmV?d00001 diff --git a/ItteBloxLauncher/packages.config b/ItteBloxLauncher/packages.config new file mode 100644 index 0000000..7b2264b --- /dev/null +++ b/ItteBloxLauncher/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/packages/DotNetZip.1.15.0/.signature.p7s b/packages/DotNetZip.1.15.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..77f63cbb4528fbdf31068b5b2d74c6ae9d6261e5 GIT binary patch literal 9512 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 BMy&t< literal 0 HcmV?d00001 diff --git a/packages/DotNetZip.1.15.0/DotNetZip.1.15.0.nupkg b/packages/DotNetZip.1.15.0/DotNetZip.1.15.0.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..28a33c875b684e632432723dbdfc7f57d91a98f1 GIT binary patch literal 913254 zcmV(#K;*wrO9KQH00008025ntQ5J}d^=pCw006E703ZMW0BmVuFK%UYb97;DWMOh- zGA=MLL~nFXWpr9;a4uwQY|On0fFwngH=Z4tm06Wl-P1YMomJgE)73N3O;T6SbOX~f z!!g4tmoNy}JsdM!$}}(u)!;!>2)Z7tfQ+{|UbwQW;<1Y2y^E~J>MjeYpYAH{?YbVj z?yBptI()zPUSw8Qbk#+fAlEF(wte5Gle ze+YdN|Bb~}=f5=kPf7UeH(vFe8}a?{y}Di0R<$gPo%O~-;|eO@(rvf#y^s4K{=-;p zsW+~=Hblf+)Eku7{mbH=*jdd6^{XLuQ%1_z^5Y)k?)!R-Oh>#&Ut#iiAM9^bEqW-w zyjGb_cG%@n6_gCaEgSiDrg5r{w}8gE2vd$^gi>My=QWgJJ zm9fzjw8b(mYwI6%%OK_A6K-&eJG*6Z;K04+Be;Qt*9S)|>pJc` zDi67PYH?6{#?-xn>KimkE7N8WAVF@W3XY`it<=n*+y+=>29-8Ivc1X<`r`H}Ft?O5cv2q(%f)&iTT~TVwBOk+;s?naDfI-XkOLI`$4n-u25WDR^?a z%$((Yk;OkkvdV}V`WQL4vf2y>*fC&+MRsHxXD(}V+t{XzPve^+JPoE0t9qImx${C` z?zrEWL(+T43%5>F%~l%0QTX0FUNr9=AL@V&H!h*L!O`$Fhf&RngPBGS)wl{FYLVQ* zF@y)Z;BPDvGHf94yU6>&*!ud{YN_jHV=qJa<{hm=0;i zA-avG@kJ~Mps$`9qgAU(@y!scpX>VBnRg@5c6fYp>C#z8m(!)KoBx@5rSz1!Q&M`i z|2O_!PYV?OP2=CpHTX%F&a0o8ET15@0i7e4o>3fM!0Y?xP$0>DRA3|b|Dd{UGw+-PT zCAQ+kjwv(ADa>Xan3^k8c)jUIR|t?oXThV`7Fb%~0%c39IH6Th^6 zs{$hy#iJ$BZPD;vDQ}n;`m!0EqG`xlnJcDoX*Ac&Vt}gJu3gP2b2#BHL~d7^rLoA< zt4!|6Hoq15b*YJoO?6ul)h!(3DXgmzOn_$hXvRb51%~1vM z%N)8^mOjvlF`hoA6iqR*PGK%y9%-^*sEo?dcJ(+Ffcdg@U0oNomLpfz*tOAi$O=2@zbrv&CkQt{t8I)JbI@i0?%A#76eFMA#OPXzxf{E@ zT`iKgrUuI5lA3>>26=#Emd)@qY8(;m0PMb7jYE5vz2h^w-GZzZ_( zN)yaT<{tl^Td#tPxv0G5cmyll6M)NfvzfwdZ^piB*VN;j$E{aTL|VaePMUL*XpFM$ zfiI2%%f`q$+qfNz93pv&N1j+)yWdcP>Sqw2G~L^H8ImZ@06~ld#XE@zkNc&uH;xxd znKy=K^5S{duAxas$y6N3`niR(xatew#NB+#v;6R>aQS(AMv?5|+4qEyo!z|SIl(t9 z!_KF@^w^&rdDJB*zMOb^xbMkTk3I>G{EzR;AH5om`#yE#ip{^1Py%kodT-3EArhG$ zyZE2qa@b}FpHb4yRSL8u@Ff}V1kR$cH&@&ITO$T;eksLTB90_IcJ_ZBv2F8XIt$cf z^Cw8Mdq@X<{3CDU>I@$9=nFWnPrq^1?VCR=(FwSDCFS)BiT?dhY`k;xNj-7W%^#q= zZj!)Tzjn<(96b!jHgEj?&BWSkV0~uhJc;tEuRZy#&6AS;i%);-*PDAO^P?%yX}rPI z({R%^f|dmOwivpZpc#R_D~65}^k>8nJ4_b^O8m^s69WB34E-;HepaA=9p|tL6l&(L z1^S5?Y7_Jg0{#0K`cul`g#!I@4E+wp4F&q082XO{ofGI!V(443WX+r;&?jT)%LrN% zXvT`5mx2J!6a+dLL!Uy>9)VV3=oCSJM8cG_@w@y9h(Xx+2*JNd04qEffZj~8KE$&D z*b4mi?73hY;Ci_sz|icv{l|EemXP2)I2qfCfh+`1!!Ib3p>hjY8tieWN$bJ*K!_yv zc$$~ctY>9-ws_W%d{a&c1(G}S)MV|dYcfOi)tSPV#(%CH)7Go?{gcR2)tG;_N-FRu~9C3Eg~V>Cy=eJ=#h@PmQ3LB%$>Px{!qW z5%kZKP(%LnGR5HO1j((;v63O5S%4bP9)HwK4v-!jf;CBoAAi(J1Q%xS2_WRzZzo`r zv=8H6rb#M+ER~$M&*xpKb3W^3895qnM&&~gSGRh&m-PWrEtkN1Uv3z|vZ&|H){jes{Oj#RH|@lSuu6IQ8VA zlpSYMIVZ~D!EQMe42;2icNf5u+2fwu%pYXLS9TfczwJ4ck=}o%`ChMgq(18P z4j*U=3zGDCeWL8Rh}yg^@^KHW_4*24U$O^yrI&@AG&1=qNHk z3DmtU%c1(im2^~>%}Pzbst zEcgNNgk-@H=#k%pn)I=(!eT+T@r}4`3y?`&R|~MWngPTb7tCIz=%nxIRT)xsA!9oe z?nFSkFq=y|U{t?tRnIen%XHkWh?}<*DO&B?3eRG}SLFQK8U;URlEyf4E;c|GS1-Ig zndwKC?1?3FVhQjoM9}I15*Wsi@shV1CgkuQcK?N80&RNY{zygbR0eoll6yT9O&m|5 ziC1zHui_?#cPR{YrQn26bh$Z|rhcWirNd_c;DnI+-P*U7T&D_k5Xgi3b;`E~D~mEl zjKhv6aa#KGeti4)Q;t<#X)znmoIB6fO3y&nsg^4Jj_)K1W7d&4H0NvIkqYK2Thd&? zUaLBhVf|$AOn5DsM)?HD5y7n=qoiAs;g+POB_CdL(^WK1w?x`;zH!!Dq#e;l49T*a zMd|LT@M?gxlnjNj`zU&|hbe#`&g1t+%=Hn72Gxx1-xFR#=_R(H9NNY@w-K!`K+&F6 zO`9wj^!KO$KsUUOx~WpOLky{VBk&T6Sys>Ftg4gdxH%{UN=43s}Sp*(har0a#&=n}l1W0~is%#eRUX(4ggNh{2#B ztE2cANi>e;Duva7nb@h4D#*szrs)CX&CZLb zGioR*rgU*>k~!FZqmn`7sB|uv>Qwuo3f`UAKYgp{Ry|>0{H!WOYOG1oVCA5GJ29OB zXX06nMbuVSl#Ejipr6fF*4p9oc`bG(-H0`*WNcbjUO=lWb{beQmj-L{VOEs(8-6}j z3A~iQzE^4%>CtR(m6&0!_IoKXgeeI5Q(shAYgG8cXzY{$M$3RS>J7M!+o@77;;~`2 zr#2YCI>8~HvBzj^-RTQ8skXae4G zUbMfoa3>PqY!B@jqkh|N7x&C+S0Q%!duG88rHoG@?;`Um%9}K2;jFM-_9E01~@%Ua&14Q(}9;f}Zt{^l$XA&kIm-bS7oS{9_ zbtxzh&N!8si~A;c097{kF~3tARG#fiK!jeIsZW9tx(|Ul6@?AXmnAcMZg_r<_iii$ zs1459@KzYXO9|ztX=b{?%ZLYE*%RDB^I{l*{>WWsx zm&ZYoBV_$&gvVh2lemC=s9Jb?XHBWu`_bo~bH!}d9{VPSWyi=BIlENa(K|k7{EC9ISLChnv2QvYluse3xShnW(y>z+=^7}d zy%c*bcrEm`XO)Um4$Wr_1-B>f`1!PxMieiFp5=<=okBkS#P?{&#^KsbpPa6mncDFN z`wE5Skv~L{b!gl`4q|kE;x&ZH6^r*RIoj0E$u|ezzr(iwa0W znDj6(Q<&?`lvV*~M+5Iq{enGn#|u3;~wT_c_?u3!)A;2IYoD=#CnjTUQY0JNeGdjc() z_{T=U>@l%9fx&&mSp6eoOx(GiSG*~Lzug%6r13p+6aHdRhXls>`wAwoaJ-V1kkSsg zUIo|4<$^0a;fF0sputa|~r5bWUfh`!CV&Mho}J8`!y6(;QBwAwce`c;^9?V+hJQwO*=Yx$8Z zeTGJj49TsH#=Fr?#KO4#sOWYcwj&{5%a>S}j8$Bw5Bb_q5oh8SvP)O@78k(vxZ#^< z4qliE{)Q&a8pFA*o^Sjka_X~q1TqV6rW!DEmE841jbCz@3}f(?R*bRV(602@1m^Ab z*#OHb7^545(05{6 zBK&}`Ud^YA`4D}C4FjiXEoCQ^KQB&$WjNZ!%8waY!pc#JPV6bxcmAT&tnz;=0hn`5 z`iRG$pR^bLf?6f1Zi3QDRXy?CNFFo9?u_h_TWnlLV=LitFDog+o}X>sGTZ!ouUcIEPRQ+Qo~qw!^Dd z6HJ%2@K>~wERr*P2RUi~*D~IFC~57YxS?&cEXl){k6s2R0KHhC7bl>$hVGGXK`+>| zS2v+8vQ%}0ZHHe*afra*LNGHmH@$TT5w|Ln(d4 zQ$bKNO2YG%Tp2yE4i-!$>Ep{M8mGvo7N5!AIvK{)j_|XUq69g6B*@uALA(M+X{MgA zt1$JTv3V``$@4+uK)Ak13=foQPdbrOO{JO(+U~$IrqH#RvmUeqQadoIR_sCTEww-h z-+T^tB@-R1d9{dopnDc_o0l%ShR211P@I{LkVHV?*Wtcv*XVYztTdeUF`F&N>P36( zZ|U3LxBy8SS5dnAwaF4Egw3SA05QdFUdL5{=GATP=CbIQa|z$eavu5Z@O`nn82)wa zE`;x=1xXr~Mdp%4TsJ2Ko9{M5hEj`atJN5p7D-P$JJ~HaMYv`gYg%hr(X{MYwMczt z?;-b|%O2m$i&tvuyMhlk%X3U0)gtwmi*W8Zn>bS!_(1*d4+kIQic4)6RO*+k{qRGK zDyCKH55C3tM*TwG0Y7|@iJ6uii58=Np5>;j*=z+SPImBZq_9izS6ZM$seMQF!;et^GDfLI>Oo)1N;IMk9)6VDS!hz} zsH1Is9(7#Hb>s@!3$VO%Z%$crE?TtCw4s^mr;()^f&G)JrMpzkv8T^gi!=%R`SmBM z#T#YW5zzEh)T55B!u}f~m8;a^6wweIWau1jwAjvCj6-W%b9 zO~DFc9LD{?c&ht>Ci!$Gn&g&0+27a-Z{wUyG^0`kdvQAqnOmvZ$!z15nP~qaL$-Z->}p3y93a)h znTTTfdTMfCI^oBuuQbhc1sH-;bbZ?|xjc-*bEJ&>K~Kh8c+rNa+(m`yKTaR5aN|A# z_mUDkodxb4W@_9OP%8MOOaS)GHtADNxfa?+&g$ia5#)jx;;&!To;bsa?aZ9(WM&DS zc~0=el^)j+Afo1)s3%MPy1QX=NVz~DL<`PtFv z`Rkvi7K!@ZwTpyid%bDrk(I!F>_q9NM&9ov>ZxH|Pw0ctA`b{|`|I8foUn{5qxGMQ z_SbJz!FM}bscAu?r2=Vhtt4T+p3FSf$q9`Q|3))(j0tt1bAhytWdV>`>6A{+9HiC~ z9_T}SIGt&lV4S0c5kiFxVIB*a8$3jk#HUzGIC{zGZ16D2BNqU3L;?){4t~9>7=Uqh zd3VeXJ_G01BOPMK*nG0+5bsk%ccNZBt^;|?|!!(S71 zN|&;G%tg>UXacU#`kDGM<|6neYjnpbSj7*-xky~hT5B|pnhcNDtW{brRg2Wh;;Tii z@mLW8q-_^2+YW6I@2`=rD$x6dKXT(4jj6i6pKYlcJ=tjfT0%p>Mva)@paKY__GORL zcI9umVd=fhNm*0hBKug&I4_a+PqW?fwsOn!UX8qSwv#AfuP#C7{tX!ilW0AiEr5+P z*b|%5_A1-i(~2v{Af|q(d5mYp^W;S`C3w`u^J+7!0TJFL-h%$TItqP!wlicb^=Iky z_Cf?NCUYz5bcI)!idQ}^8JFKFTwezdX*FLaJm4L|1Kye7dBOV|WgbI$1Ra^RziNw(T_y*ju3Dt;FGPYXE!Q+ku~-V+GE&_ zT>z-XuZS)98{ny=8t=d-k?#j6N&wqS`;HnZBU&NfMx~Juel>mh12Z;hH|6oyQzz-7T z{)0v71RM~o1DhX|T%8t@G~dji@x`waZQ0rU>Yt?C2mchg?ruV;{!?W8K-5b#2+emN ze6XM|KUfs#xepfQl?RK`{KUaCdHJ7Y{O;9nR{qJ9A|!frydX;rG^cX<0$03%!yIfHK#_ew6$DKsHaTPpk=%B`(1 zb&T-ui4Z>GIbnuqRR)d=;iwGjaM{LY+fGM^aqfhW%@1(KTtT#HdKHBf#`EdsKTtrr z`H#Bbk4Zej41fKZar(jC^&*@Ph?ANsE6u*1N>8Cl#2eMIb;9uFD4P1Cqi`y!FrBA~ zO%Uwv&T&xXSX6f-(iH2ib`4Djlsu$WQ-gv_@B?M3PUJZyxB1yttH54QSKy|)R98|N z6j&Rs4CxmL*REr{>ZVgk1yHKEnidzsvt;OL8u;rk(5^oi325=EtVkfid*gAg zu526UO;`N-$tSU)HKnlR^e8#)$NbOEi1#ft-!2*#XymP!VG`Zsw_1AnQ6}4JRr5W< zPthpgLyL^+Fa-#x)yfa3(R2=($S`k)MY0Ip(NU*0bwv+v@>Vl&P=tzO$}Sv}Zpfva z6j*H2L2@#mZ@yJ3OPEdC>9<6tX6%5#Nef;03pSurixe3KEo$*?%!*?($TEXrF&1K9 z9B4}9IPh%}XiBtXAh$tbH!$u$Y~onvtzU}{>|=Xcn)N&ek!#wy^fnt}qg{x=X4reY%Lf9jmrNExtWEIQjPW9wje!am-HmeG&Y= zb~vr7^d&l4z7*l)P^B946Nz|GuJM;}Q}f_^^?7U=wQ5n1-cK=lkTSjp=1BHt<@_M@ zPtRHzg9d`L<+wNHXN$cIZG3S~hb3}S;RgC`0RZ_5A*hf^ouWSxAsnX!t(red-@DWz z;W}AcKN{BpkscRm?NJ?W}Igyr;GQ zc6}@-Q`V#Pj5yHW=BjB|Ls2s{k5ZW^Tq;2W@}8(R_sgXZnvfh~Er{^bmzE6Hcb*aN z(~`hbbHS_2Us=26wrIysPlz2NH(k3u0ie{^Zog=5JLOJ19DPZ0Bk_}#F@K*)Afj{8 zoIj;C7XP5fVi>~ljfpW3x+wKOU>nQ(5c%^Qi+=e?GnXZ}Gc=7U`mtz=a&7@FU+m?0 zqmqy|SfwyRshtFVRYVin0l=#x06S2^$F+Eku-8Ok?6_G4r=yhC204Z|I1>;O&HeI6 zO-#~Opb+|k5PHQDQ5)??_OFeyX9obUivX|FfY(O=c5pwh({y0~$`MPsl~GLqGD@z^ zsPvlRV&ewarmZXN?4o7IPa_@5KA(O=%xM>^3O3{7xZ4rsCKRra z#|vUO5AnEKBtD3lA-JLHwwiw4%%-Zu6e4htJ&J@YFx{IxTZ1pbJG z$AyLC5wwnh?I5`}gu#-{C{v*taJ>Jdh2V(@E;&XvRhax_d+P~?ieaa?WdyWs&C=0% ztC256^-L(@bi$ismC_@8pmzZ@*S@(ls`mpql4xPsO2R1(?{P{avA~^kN~-`^9RqqL zNjftd+kKWsp+Uy(7vUm{RcsNA@-5YfC#W#SIbPlMoG#NG0c zHYWLuHYO1$`O3E{zQSri21Rg4kNN_w2lps5AhbJ3wB5?=7IxzS!Z_Val_lBlKZ>rQ zd4Qs=L#w@Y@LHsP&r-O7kGHe!?W%;ePYnJ_6}*rdum-3Vok2YqQ z3C&xo@w_f2c@}u8=TNS;MkX&pS!Mu&o2Z&<=?Kr}UG}A%XG8C1>+^zknshwRYSnq^ z2(sLvUfDOS7U^3ZNLM}Gii}+YPxh$ncpJvnv*cc%i5}jcHXt$Udp6|{R(wVpuajr?*a7L~0qL6yI)+I# z{xUHneJMRAJPa^aG?xtoq${13+v?_sSKVg3^1E`>m->S4pFDzDYu#OVlR2R5Y0n&84fo=@7Djs|J`a_`2Alv+Y9GIQBF; z>LI!llw)iV8L3+2V`kVQ9MZrg-j@W`a_9__7?|iJ@A2b14aaN# zMAt9bl#VL^xsN21TE-@GR%}R?lEiGK)k#RtGsOg6>@)9>i&H%_ zRo?)ujs=MuS_>Ge!!yyy48s`Vh4_&J1ZK+;ow>#Z=%PfpA zS>UhO7ulg=oM6}W0}_PD-c$g6RtOo7+Graj(QOpFR_1!M&M9<*F068SDi7h`v9vwE zQ#HOY+(K?ka2sq=qcqY2%TTsay+Yac*L#iUB9`ocYE_mQT+idlh?*~!m&G89%b90B z`Q(%HX3cMWV5E&dmi>|8iw@1CeUM4knLEmJf<>f&RTb3yWKw{Ag!#E%?9n*$v!Kl$ zh)Zx?+`d{WjH89|{Ynn;21`-1CV^Xq1pdBDZ$K7w7;ecyz|cr)kH)o7xbMUANDz2gOkW`Qfny2Oi-zVP}bFEQ4Td_Xkdw~@|xtRKeVN1v_6 zO!|(g>a)~X51ewH9UQDWB@>?+)WT3>8Nli{sIk5{647w7b)oZvGq2)EW0;jkuT*0S z-};r}uU}cYS&gkB*X1bVYWeb!vCAtv8y`b6+{&)TL;St0@%Q|lYdpr^ZH@2n_w>du z_`9{?t)}nBMvcGgb^Ie6r?Y=e<0AeJHLl^W*I2+;wQMvnpwti8E-{Xye#kn7bs496 zj8mv@s$B1k&YgnpVRJ9K@(~;W|09x1Upm#~l=AfrPU&*Q-_m$JmvVaJ?fl)^_<*k6 z!@71~;qQ@+@95h7MAz<@ZMBPWTHB7c?zvQj`mqq*X4FvqC{|KTbgX$+_OzIZ?%<4-hp?F*IDPvqMV0= zS7l|LE1W`Qr7UO#tg{iU0G;w~otf8}8O%wUHl_@^zV3Lj?f)i?=WLTc2hon~SItox z&N*r9+~@Y_PpsbP4yNm3D2q(2^w5mF70?d#M7v%is^c8jQSPAp9&CtCkTqR}aiv+0 zCVsNIh7r;5tm_0XCHD3Vfw#CmN*y4=c-|JPADc~1_8+sue;{bm?gyRTZuO(u zjDBQWjYMF`=P*}r#9YB)4J!EjkNvUh^xz*kLoo;XpZ&F(R`@i35&d z55%yUBGPDE^==i+{V6N>|M#ikVH7E6Hkrw1ybP3KLX&?U(PYmZhH&9}nN6Sh-IGsh zbWBIp?^Od{uU;@>h5?Hn zeL~PVm^IB|9*9{~0<2A)bd6y9B(_ZJRq~ty@{x@Q^6-g-IIGyg3MLa;xzB2S5jCLv z|EwtaKTRzuzXvMHQjT$G94Iu>xNr;{V&@GP!nLtkk|}+x`9^wYV+-5c@=l5h4aiYh z7&p;{W4txjn-SaAjAEfQf7-lUR6ZL%_*! z?K8UadPpfc$x2~R5t(95Vdrr%5GCttADE4mA zEzM6KBmQ|A`RS3^OQ=>qEP+&IyY#DsJ6R0#Li7#|cx%seD>I4=5ZyicqtW*w z!SU)R&)lYc&q1mIa)7$mH)}}!s>&5`-bBvraP)v}g?Mw0a-axE2T)Yoy_K!n_bT>H zYu_u`H?DoJU|&J|_OLGlUvM`$VRG%v4$lGuXVDucSWt$DykpbY8^CPOD$e#RXadpR zezhn1Mh$P09#g5|ahF*Tn>mp9e8-81bTZ2?#4MGr*g~&2#1x`lXuJngsV`w`FFc;+ zU{b5=s~heb(pfzZ5u$i4UXbpW0#oWXNy{bmWQA9uUWqhcYa4Gw2I6BOYk4j@6PGiv z$F^d30p(t}*0|o@Z;Cwy*eh9khU(^ECC7bHN%3Ap*6}C(#xK`KoNTgH%8`T2=1`@l zIG*DU6AM#F0H}M^obg`fEi=qoa;+l!GSXM0dfvjnk(LMA&gL$<;oNM_)5mIFgO6r+ zQl(Yv*EDK}MZIS)Qq<0t*s12#lysl{L*%&dEzyvQIqP&zIpMdX6;>vC63WYzws&no zWtWsTiCLjAeXPAmB@9nZD|?Zvxk$C7(|<18NZSG!p5@xxI{KW{i-W|z^F{jHaSAke zO$zdJGuEQr)>a9;m0%z-=|TaA=puo`oM$3n*O2`Vnh7(%{Q#WZ6K5L!}(d3F^I4V5YtNOsnXq zLhtHQNfB~7W8U8-=KUSbiC8~&3{4L@#kr`%uF#46IPnL&Wcb0ZMGG{({woQlE3FK= z(yEvUc(6;(4|dJ@!R|Rf*qJkl5Unn+u7SU@QetyKd*$jY2qjbhHbZ*{QBFiMImUdV zF7J=(GT&Ai0RukYUKNI$yLMH2{Hyb}&c*J?)lTHP_}4n!Uq|Wkj#Hd%lWF~= zB5)OL)z0rT5wm)cn0sN9ueBx}Gn^c&q`Pu#)DxfRf;0@1dR_VW-b#Nv3b#<1&qJDi zrKj-tvaq|m8lWW2jOGTz;ZjJknte8_QXf34eZt1pf+f4CbCJ=`6K9^MZQX?Sb0 z*w~2Tv;X)~1V)1)`TF!w2_o1!f{n3vs^gyH%-VPDTJPY;nZtG%k3Hq&=!nj2)-H{C zPTZHJHSolpXxhGPn-T9|8|Pui@pM|Jf6R-1f{fM=PxuO35N?>TZNBBp5h8D-*T{xV zE%2@at1Mbrq5<6V=FY0`Xz9DKH*)!VE2|>+7+Pq7G)#jfiwk6X`AV^lK>_H8F)Dqnf3tVd9Fa zFTT~W%ip^^ZVOi0+H#(vmj=-RzKZtf0D8_azLCGsEqXBl zRJZUB;!kPcK@W|ihsMFsIO-POZ9G8u+YT7s-oXFj1`;c_kxa5nnS9!;L4kvqm}OCG z(V--}<};-W_QuZhW2cuEj1(WWOI)jgo79+FiD3@@lizz-=>{m%-6a?2Ag16JzDQu! zV7Ykj?~_9IVGlXFZu~&b4u3|$>u-S0)6e(%`CMht%i3Np{5jxv?SlT(%b^X>YD(0p zZ+U{^If}b3is`4l-c~9pDFK+x_jY9SnY5P6=(*X(07Q?@qE)9Q zobPNHni>~hd^hhPcD&d*ISqvd?{j4<&rKv5p4yB}869O^lyGu-+%8QP!(YIYOAk)N z_7Hrwe(oY&nAI7rYb$#!%BYTFCrT+OzzKe;EERjnNOfgKPc8Vr(_zW1G&3QDsG*RNgRMo;h zHJ>vQpH{t!ofq9Aw2mXbL7u|kh@@DRa0)B%-Y=#R|CxpLbR>w+f$4(|Ex$e@)Du^z zEETG5NmLB;M?7Q(UYlr7T$mnI0bQFO0BF||MUi=Zb+rlwxB8&*VETVQE)Oi_Q?c%5)CHZvGwdCs{wIH)*jK396ZcV5l8uYR8cN z4ue}xvLUOIY{+!hL&xhjl$cD_?k^-Zsf z^8KaGx3e7O2b-wx2ZGJCn_iGM*P_x#b)M3WcGrI(r^odQoddCMbYizk2LnkItzdIsOopJ!v>6nY zl@xW`U~&2F&{zgYg4<+(C?F~7w!xO=+#%{F!Cj<_>S{k*>6b{tjPdP5qfFITjE1IxFtSxz?U_xO}uRbF3-DDyzPK@FDc2PaKn6+9$LX41ZpbzY6Y(KssyfS6 zC@bw{d@f6Q>E@@HS`xkgzC0KYoj*;zO+X)Gz!e%jJYB!_*QD|z8%Qj_bWl*(5{Dkc zw4tjc^F`iL74tP&7dF2ncGFT7yopITEd?%iL>N9YT^C3VEBGQEHq`tMSQnd*DYhpo zO0re;6|y1>6^8i12A6M3L(ke_C8~tY#=s%*}m{bg` zZg~u$!Ec1m;HVn(KSWjeU5ey#M=fC=jno3{1l{IivZN6mDomH6!ywRpv~E(n5=FOc z$dvJpsBUKK0H88MS~`Mt)FUQaaf%&_$$N;hH)^&HxWP>Y2-!AU2h-q=59PrfAHIV- zK1c|6d>9b!_)s3)@nJx?<3oZ6Ie&6ud=La}B0JDQ@TX5@yYaz!teezVS-xZ4P%Dk# zUbHZ0EWSpxH*$jiDNT4Wea|uT) zrzebl^G;>0XL}ANsa!mWNGBqTbnupzX>O4tV0%p?1SYXPo=?|4qfC7}eDF5Fmo`V3 z3@(^X$W~X%SCZNEHWL<0#^p+%ebYLWU)4DIb#3Jg{>jk;9Q*|mv8_G7Tahv{eeza? zGFBSz`xHN8!e@gaT+$td-r&5RrN!xSnJX}WrNXu)xGwhzPz7V+33|&lV%pBohZG8t z;roiD;XA#*MF!Dy1}ZTRyX9S(k9y$vLz>Io@>rUfSUN1?2!~ha%xHS2d3tX%&y{$v ziROM8HoS^qqcea-A2s?uXPD$BI!2n1bI~ts6yKNP!z_K)O)wW!)l8pUAz3*Jkc-+N zYXP~W4bl$?Htkf^(U271A1OITMm{Kj5Qk@5N{sI9Y9LFNKfiv|6dQZLA8?+~drvN7k5-Ggpl=)3vIE`EO(L{DZntVWui3q9NYl~JZqk>k=I5Wo;4TQa1i1nbWUc#fLun7vBD_HS9S~9|Axlp z61_CMM>|?4P4jkX6staIE;&bsH}HeIh~PjM<4;ZK0Ad#MX;G?m1NlOug;lOxDB>2R z8 z=+t*hqiL#F9HEe`FEnMmC(+X1>Oj%gL0zZ!Zn^}{Z0Tv$XrNW2(#rN8ZsV_)hqM^s zE@3ThxLaU?-%kX#@!ZQp_ETOb_uVb9#e!E)OLi;vd$lXE>09cbUYi`3#AHbVI#t

auE4=-=$qld{^E6?te~M%PXe`?-$;nIg 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 z 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�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 ` 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

<`Z( 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

8&w!JzBjnLRvqwaRe@Mv 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 z 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

B{06U~IKw~`z%?IeRsbL8Ux3%`>g!aAlQU?;e zVfay&EH&=i3-=^qw7jMAMx+waB-*eaU!?Bi!5U^}#~84N5tQe?1AD*#bQlD($nXUa zrNHmrT@q+Lob15?f>o@~`*N|D&t-l}AB(HGHOwRH*;i$d6e2PbaX`sY;`!jmQ|U(} z)6h4)+$V*kP_Tb+*aO%Z;Oc_XPLhxStl>T z`0t4^&GzBGkOB6Otyi5aO1RJS_Zgdk^DMtGBu^y_H}A)Wm@B1NMM*6MyXX2Ai35Jy z6Kn$(f9}g`KL;LqxYm*ua437)BiI@3x-Cf7rQKR%8@$I~tZf!u~AnN~BS>QNv!aJb68-;G+cNufq5(0;1qk3%TK9o|>PE5NCb{<7G0# z?JwuWs_kY1PJU!6sHQ~yMO}UNxGv8Qw?@GUf;5t(g=?*`T8&&pXBLSrQRTyV{k$HH zEv}FVcM`}+&ZKrKQip)5WsKZR!iRb<$nx+vqo)Pzs{p?an5lLFB@**x1OM)$s1Nq; zjf>k)nyyBYE7y~1c`H+EV2mU@6(izJ{0r~EhXH4FlVibv(N#P5eu0O{?wW!#@)y)2 zK34mJXE&`$$68FaKM`Xd&88!qVXeWKwMZ-9$eMt#(nKe%yG$HnxN_XZzzs?(ENAbT z{r+ME-vXD7v7gcfTjWj6Ric)M{%8@v%KUO`d9Uvgw_le5^HO_1*D;*IwGSGEgCCTH zafnp=%SJeETkF4Tl)9~wy$~`&C3b3)yL5Y}P8tgcxc2hVCj6 z&jcL^{_|k1x6z+>^%U*zU25WAJhTS0?H!96PMqHg(^LHJ1IcJ1wsSKXLlO0wAF9xNbT?m2=r53mPjQ(;HuSbD0zT-N{rqH=LN6 z$~czy$))H5PR{K$Re!x{ThM_Xngs{oZ>S^jrG8Ol7jn45gj8L>*C&GFaMdbrnd8q8 zqr@-GK7TjYuWiIw%-(L+6Q&Z1T%hX}P`7eY>7<=RE5E4@=P7}rza)toLDg%`>4XVjM3q{wp7fYA-d;mEC z=kg4UwkTTU)i^~~2-(}ISe@nbH>Btzi1XRtEHUB|=hFxL1zky?x^nO~qQo7Q5jB^9daWrv zX(r5qA~txMfN9ivE)|F*ra20fS_QK5a$HYAT?uWR%&;FYTDedMP^VrOBCmB9Ex1<7 zX9U>6EXGWvgl!T~PpA2@^^afi)ZP}x@cF5P^(_4tYkw)=waineIj0r{fOD$A@m)!} z#*ENc9@F2)o+r~P2UCx^q4phQ-UTA_zAgRVA zN86+zCS!Z8XEcukuK+)7;EvTCja{vU&s<|k{6}96n#JG z+P9x{=nPJlJvI$xSmY$iw30Ko)=40h&uswgILabKRsx_Z+80t_ObKfYF^yih3lbg_ zeV_;M_exv*4*iAGhlA(OnX8vO62!R9zPke7?aD@(DO3v$!lEL3bsb3jRX>>@*z2@& z)?ahN(M9Bq0O(VE-VO=rlrxL^mqFQO0|8g5MKPXz@xNMH@#p*r73)iTLWN6-AYF5p z8wpC!68$6W3g!>_3lg^tzOm2aqI$rn=T;$!ACXYx+gaAfmavvkJfa7ikg)GcyveZarBtmDSt^L^OIj|rP7SxM4l1Z;9eMMwkYlQ z3%Y@{Oymhs8YvfSDh_-)M0^H9H1qBB6UO)p*3_}dPv^e}>TCeVAvx~mxG4kzpJ*Zg z0qd{*g!CU0?g^^BhxH9{pKaXAxW@%eTrr_M;8F=7y+y=S9TONyium|7z~Ud@(;b+c z=J|usDgTTRt9KR%zNjK4zy&5}A~K6t3*xd+vLp`XLe6x72~?zj1`Ffpj@1CZ+oQv&bG!ZmOq+)>I}llDTCA5`A15(~uIv9u9n%@KNNVk11)? zT%ibAz!D)-bl6U5IRD$$#!hJJm5fn&|U8x}wyxy``Mi`&>YrX&S`8eq~JgjJ|kK zIg_(T4x^{V?9CBraaV=EdSbFS7lg zF|MPcc3#>;(h1plAx-3Boc^QTgnpD+eizmGPk$Jl4%a&WYj8v%!EDO7kr?j@T!RMZ~TRq=`vL>Y{7p~hngcA z0{Z5en>1qVL2lWna{edc3tK(0S*~=p%$|@sWK$5UFew*Gt=NkJ$c66WeGr^r8z54# zF#-DuCm_-{h8$HhIz>B%VN7=JUcjjS>IDQdjGWir(l<%ekDd=*l6-H=xkmn`=e4Qr z70O^FYJ6U|8x%9aA5yDOR?Y;w* z#yOo1^@!Ank{}aUopyC~6vC6&=`N@qYIP>kYLYvUV={ zPL66n2r2?}5Gy>KZVImK&;X0ZBdhz?E}Gm;D0)FdOr;tUS3en(v-^BF_tF;h_* zqmmEH$b*(d;5FQbwN2RLc1#X>kq9dQwWe>3lu*rF==>MWOI? z(j)$;0aNoM`tY|dC$ZDhDI-|4!!rX>d9(QoK%5%U1<{GSQ$P}=9#iz57? zoCCMy9dNyg#xRWlUFJ*Z47ph$OLkHHETGQarC6mjZvoIajpuOMiJMO z`2Dp=2noNCYHvD`Vuv#a0%%`P$mY2dFOy4ff{opnuJL8M1 zm_QXp17pR?wQ8E{5f|KG^jKblpR}CO2$3{f=cW2k^?p7V*~mFD5A$<6FkpaGdk*mT z?ZWtPb;7OjqgdPU1^z`lTK>?_MT&3d8TZ+b#*#_5(z2t#h10?15pJ&+F`+E1+mn@W zwU!_h3Lg-M-$gV|D7DBs3N>Q(*>>xZQNYStebC!Wx=Xwb>O!Xp(g4vt5+(O{g#^-%Apx|ATXZ!JEg;&Q@6@yyq1!tYZ~>Vz zP_xllq?Zo9cZvyZw>{2w7;N-9Hg?<>xM1=x^fQY6vo0!Xdw6v#N8R>K)KAe=W0&Zg zhXPZE!hxTPgQqCcqkN;>ufU9tyG5JPmZWUMo`Q?Iv}#dqX*vfdcfUx~|s zybJ_*OSV5uo}Dx?yC!_wl#|`p;R&+koi@uAdid})akAV=I>Cvd^e7r0Rcs ztk+{><=}v64Pfu>vGn38D_&UJ7N(xN8pa0n;CSAY8%N7+tNL6h4PF$#9i5%m5{_>m zaWqo|xxg+BG38XlK*V6E;6kp{!Yj_P*@~n;s(m{z|9LT!VT4xMz=!XQF`<*aMibJd z$jD}5_I1*2Q!wQrl{+wL#*5$p5v8L1ln_lTJpO{%S_g)DrmQ)fA!;CqX?<8CZWwW- z;O`4LP#CO33zFLCcslL<+jG{<760>khp*>; zcQ8!$)8C6N9uenvsib3+x&iHSLl)pQK{w1_r24L8b;oOAgW;l1=IC?s$-v{pO-0YF zV5v_-RMc^BSlczFDuviAhZtuRRpy&!)=?`bEPyz;8_40>6iKL^ArSRlWV#4n%w88c zk-=hy;zRhDq4LamcQ__yVbVYM<@>%tv9Jt>->9l&(oCTib&(ED(S~jA)ZcM)9R^U;k4vLVD}y65Yt+EdmPG4t=>A zOh#J=E<~~Qj8szb~5&Ha?w)?s53(NWeEWIM#8C>;4_0Kwc%y-DPdTHHr^Z# z98XG|a7r}<< zJk%h4&Y3^?1#GEm2`C@Z_95L$eRsNAv@GSf8+j8r;|HV1=B`gN>Ne&xI0sSv+ZWJjWVT>x zRx8B-z#{Z}o}7?+eA{~OH;08Qi5Zt!2(`kj zn{E_GY`(~x{455%NlZ)vw*Wps&J%%M#?Ovy@cmM%IT1HPUXoPiC7BuoHa7G7zMq3+ z`V2ckM>Mllt{yJkz&JB#<+JXK1_Glxhf%gy^{PQk3+6umT=F5HwtRhjd#WT=Wlzzl z(RphoEzE_2Pl^)|dWx0R?* zDtI(Cqe`wXgD{=k6r)U49CBRYCy`yi*K7T|X+2oCeLO3cy2Z( z6Wm|kK0JDpk7Wf4-{9W62uO#HM(8tws#ehn*n?{rf;h)keHN~AlaUEUa(=6pu>g?E z^Ul6K9GE-%4y+A2L*2`hmHgp$9K;A|uoY{Q*`LTICIkw9y!}q0dLmtN9#(0N|L*>I zh^i*(-mJ7{T95XFdTPhMEaK))H(q)|+s6kXJJ zb?a|lnf|=6?yG#!tnd$c%32xPT^C+%0|2^p{pEI5L!_2$ZPjBCcUj<(igLjkR4B0` z2x5wgD=XV_8A!ZCGn#EG8NuTNBw`qfdn)zY2Ec>ypgyeS}^A z7>0}-&;qY+_Czl*aX)Y4sl_CsaDi4mMv6$*q|{OpD2Y4x5HhbP&5Q&A%8b~4fu|Js z$b;nwFLe1**?rD>YgE%7VrsW00~}j{a!H~x zb9!N-+H!^g3+9L&RK#hH)@d3gX8uI+8xPeVq&w2wRkRXt;4d1P2Tu3SOM#m3miSek zh?O{+Wlx|H7fgmAT|O72h8DZMQ|_$QqXd*p8<@$M^Gn|}fl4x<%0O~kvcoxnFwrLG zT~Jd`jyIo1ec0`A+(zWK@xb9>*^P_=p^+XzS~qcQ=d9uoxB>Bt&_i83HN_U?NRgTY zoraB0nD)0Ke6;id6VHUAzRh0-?-NNaZAQ1_M1sKlPDO}`>c+)lthEzQ^G7EOmwAAWwQ zYXgC5BmnYSMB*F*2EjXXe;$_`!%6AR1?fyWP^NUDkwQuj3x4ziQK)3RC39_L4mFR@ z(v3On5m`Xv^*0WTf@UQLhk2nW#KwXt)+UnMM(WsFyZ z|8z$w(V_-tf@xR1GFrzoK$J9M{^8@t?MQV-`QL1%yghW8^X)}N)y*ftZ!ZVy-|-AkwHE+suE`6Ekj#s}hWN2W)DuY>8=t8fhh^9^U1ajIKBN>T z=5hx_X?6d_ge7g{0@T6g@v(_Vm^KTqB0r5Z!jH2h_eN~rIx`Velfo&NqB1X# zhy#b!C!~PiEpfTG=>;dhApu$h2tui80HzQ-i!&7DKI3)Ox_pa9&~|Id+>ujzPj*A{l|Q1% zXFwHhRTs%mRk~eAYqSsF+BqUVz z{i%6s-*O<=&V|^d?RyvXPeRK-#K5)Q%B3N!Wtc2)~}^Ldg&@3 zi-@ple@{DZX|;3Tc&YABGk>h$iFCj5aDe09$WhuX1W#L=;#$IbK4f*_^l9C9SDk7z zmwkp78m4GEfN_ZnRt`3YuW*%F89b+t$OI=OCPYLH2h({hYrO9qp5Kn!9}?;IzwO@* z3$q;kJ3YugP46BvVF&O4P=R#a(!c3Xyc9?EbV-fE$zKu3NMF1C1K+UTwt(`2J+{@# zx<q;Q#V=#W6tCY)&p*f`gc<3&FMM3h&^ zPR}?gVkWN=Ufy1Ww2`J-osv}@!-E^0HeaZ6*Q`|D@pMJDDkN`|M*BK{lbc_LG2XiD zSEzVphd^<`E_W$AfrLCM6x(Z^aI}USN7c^9rwVVjgaTvkwO94n+a~j2C4;dT3w3yt z+V{x0qp3vX<&pod1>m^a%Xo{e7RGA$M?O%1Q?MD|?KHHxNe!D7`I8^fc^@rqxjke4 zLY{nH9L1+_i0N8TvLh?`nGSATrR#gO_vL-( zRpsQB)mgRYIh{EtQ%mh$f(5;~>i4A}5;hL*zf$mdQDl;hG=F_os)p(k=+f0v2!gxg z?*!BvvAH{59wJBuvKO+$Rj#-EUj+Pb8MOIns*Kt`kqtuSqvnp6Z@6*$L0GjtKR;AV?oRQF*=}^ElQUR+Bw)P1+|A{6>95_`gsA!HZTf9w z?G`IsUY_^REr_#_K0{+9zt5SR4Rp9hm#jkgT};(2P$`OYmfP#KVyWNRR8pj(M3Om6=Uj?Rm=LD!D9#Cu7O>pT4m!M%&mhYPa$)WbSGEWKH;<9gNHVW zQvo++F6xRs=!9COb2iOY<#<8NXC?z%5V$n0Rgty)K@<3(4-$zz7&~Dq;NJn3T}g8; zpn&{Z)`zBb@5Ijge*DoOx$${l{PouvS%=lu%5tRO?tr(=xb@GtERz7E-+N}d=bjv9 zPgIQOY#mQ?^e`KV-T7*~*K$>0xb`+&4o7;aQ9+COFhluZ zc5sff=TzSM*|t(`T*+G34V?i$-Ui;>LvdqEwl`VVc8idIe9;n@M66ymM-PZm2O*w9 zDg@7<@0Mh74Xsgsu+lhhY_PEXsW05|`^W5mhy6~RAo~I95i1c3506xbyLge&QUQ{C zKPpd*LpLc@X)R1y26sw}U&d}#QRzDEDI_{@>hV$e@dm!1=jd!y|NI+m`PHLACp4^+ zvY1kY6R(&6nzQ-vQ{C@%e*Mw|TW!rRP36kIs;aGmP58d5zaO37997)Q7LpLP&OaK; zxZ(ZIqw3M;HWaqq992{3w=dFmcg?f@@+bu{ZgrZkeRpPLT7H15* zQ~Vwdr}P_g68yqVY`f?|G_PZ1v?u(wg_6S@;G(zxD2*ldtetF*vXf|^(2Y{pJRf~d zvT#ANkbeA<_Bsuh73>Q^opUox)x)ud3P?Ht4pdrJMFqf?}@S)cilVqR+9qak7( zO%rpZEkn)xM-?hz!Dc8K9$ib9lo@2x_V~#nvpR%wimF(L0p!-3fTP!P+4PGw+Ne`G zd%yKD4;P9}>DOf?xbsW6cLTo&^q3#uHNI7s(=z_}C}jQPD{M=9isXaQ7`D0mKu!;r z$u0BSEdz|D_@a}vWphAVKK6=ATwX^LZya-e)BVl$^Ycw|g8n&QA+^P)FL(CuJ z?_d!2{PflzC#DJ5ub*ha_&1c7)zWuLxET9Ulc6y9PVw<dWNv&8ker! ziMxOCM%D6c7^Si}RgCOOGfex3kDPU1b(zaC%!?%Dej;hy>Dov+(yw(jGSyM1w1@8g z85-1g0nn}3s`{S_3vMD0PfrfZ#W`d7%V{z!I*^Z+s#-{oNZq0k4Sxvr2GsLu{4ytR z6hszHSH+c0Vb>&9Wx~4hY|#LeCB*+M-Q!Sc!R=SJ8W>}S$>gSO-t~Bj3^dy7Rnq_G zj?)p=KX3=RV&sC?U$I|VGB;=dif8uO&xgt-Wl_^sL%Hh(;;fN2OoZ%ot=xGD=}}hw z&ScM2xl1;xj#VJmb%K4qlV1;~*x#P-x!R551XGfO>S;I-E%M)GAMg6M`dztoC`b$r zy3>wSM4!ypj8cDNz}0Ik6CSkRswn2UKN48mI4t)VVidmi@axHziR3$UdzOd~Dq|p( zXdAHE{q`xDY?3;Su=A@ll5`yW3%*Wc=r)uoAr^Fe!QV)_DL1KVfslExa*6S&1Y$~j zr(+UPK10`3Q?pL&4^?F}995!i2B+LC@US?wrG$rR0rgL(f;4&m z9w=n_gFc*}CqE!|BBh*gi{7&!hsUKu2U~C1%MhPtLf_qZ4Z69Why!KQHs^8>x@_0_ zYHf8sMVLP&Ed_8>LPVtHpWV%A@MZZ6%f7A>Scmb;8d;?-x`|$j%sv1bG%lxj1hL#4 z149r7oh#a-=@b_D8;;B9!e8y216mbamBi&yI*|u#Q0bb z>PSwnN14(A@J_PGYhQlWF~f+blCfog>4| zPtHw(b>QCip?LN^eXhgEs^&(v?$)KR-C(!#8se0cwqpdM)l_rr3G%%XhiWp@r(e_) z#UE_svz1);)eNw9UimBW=z}@eRJGx@FW2zLvtkyp|<35Ag3!O5|6;<8R=&|SS zyr1uJ!tdT}**q_Jf7W$Q!hnN2{rvfA5-*JJu^@_tkbHh&!J3zZm*gW!C9>od^6Lyb z0Hf)Zqme>%uU9@U?Zdza2D2GDdPNueixVU`j@=>dg>=XDSJ$j{SmvcdXNUv8gIC7P z2-VYRWT{}GK}Av7Q741>AVSOP;8z<7_2yx7$X|bnzy1NnopQf?;>t;lx0ykduTY~W zL-(d8q=QhXz_^3hpz|*~)TZPr{xQ~wGMW;)42xYR2278OYG+Jsc+J8+(!w@!aFro%9@5g*{WPB>-35;;pPR?Q$?R{gkQ`3A2`0Y1(y{@*Wed)vg{N(zwcZ8RR)U+C5raNsaJO<<1gLh7xgmTDP^zxrTzaB@nV|KOm&ZUs2;#)g zrAWu%L7J`T7p{`d-gP1J+O6>Yd>dR`$L8tyKObmM}+~Kr(JN|YC2U(M)f;l*V<-ih<5wcx6kaDU-M>` zZzwtZPPzELqxuRtmE91xezV02Sx?t!4@LYL{WVqm!Ip#%eX^nX*B7%DEErBlT2pVo&%E3Ep3TA3W!BW{^Glg< zxd~BaGb;E&D9y6WBVougIxXWPUKYAh_LBv~$w4Z+A`STJs=CZuSn_R$SGmQy zQtC|byPK?Gd=@CVN3R-UuXx`<*S;Uq-_6mAh|^8t85S7pwg;S{{5f(ftKAuinS|j~ z!5A`)42xQ8JB7!#&K?@Bk8nBI0<<^LTcr8%n@n=Y5Xn^*@~6&3L-V$n7*< zMVSs7fzLin&yAS;b)KE9p#oHCQOtIIP6-YkQkCzVPYyLVs>N^l9uIyP@0S6vDB6cF zm-&7V5L86os|TyhXcI715h`lC0aK(kVS$2hurl(u1T|~*2_MrH;;6ff`zk6pp=xox zbaP&&!hp^&s=1&&dQSKa+CXSnI~`8f{zP^xnpY>@hYe3d%TlQ*eEqwe_^(bt9GwvW zCyw?`n+N$rGi7J?JAIR@uNrE*Ar&H`aIIkOq0;z zX>U76Q42@MIKNJgttVdkkGMZCo<-DWFUvI|aea~zT@5dCcHUoy(~r0IpZPpBwYWX; zx2>#nZfZUraQ_ExydQ~NJ^qRNpo}&~<_pDGNPii6`RV?|wz3c@4mWFmc-*vIt&r!U z@`Wb_Z{waVmwxL~q}v_AFsK~zU35|o8=x9fV)#rWQ0)i9!nD&jf)mEG?|od^XLxf* z@W9|a#2s9=QKsw@Gz$2Y1*sy|VnzN0#RM$PnG75ke9vr0;N6E@Q#lbE_lweubY+zh z2$}dSg|y}be$2KYPa~BDp5LA{s=T)tB<C-HEZnF~X&{JRuCyc^VDDZ7J+$Z0xg#!Jt=>@Yj;UcgxQc0>-qnvN7D9RpK0 zw&I_7Vdi2u*GsjrvAZU1II==r?zHd88S}>Q;-lcGa_kb75${ZzZ{Ir@Ju>L9&%Shi znfjLV(k>drnS`KVxhpHlu{R2lWp+R}jD`pj_@=^lrm+fE{SQrN85CC+q~QSuC%C&i z1h)_@xZB|F1PJc#79hC0ySsbv0KtMggy8Obzuj7D_(v60J@?$x{k~6kGnGC`p9x~n zP8uvlO2M>Sa$sdHd?zUQR#Fw^w8*BOLQ_11n8p{0a)2Fz>5zQOn?EYco;EfmK~uCr zCVNsd-MVzbP8tUbtCeB0f-6BQ7}Dn+^TYDZOJ%@NBgkvAe!I+YoA2VZws-P$wRL5E zeg9C{KiWd=#>A&%+C94x`e$R+xMW*V# zY-1|8)!jPLBo2R^*?xtj*iGT5;MJS7qET)Wo z3W0oWDuhI}Y?EKO#tu1~>$YwqrrqyahaPJCJfD1YK3QY|X6D%UzP4xx^qgbC_3If9 z{cqJSho}J&3z$eS_D4XetI{v<8d@Ow_|^Q^`K{IY*-i&5kSs3FVH!XXL^X;iSAK|j zK|u#GnL3>kPk8d>IcbL!*qF`lDx`8i)j&r>gwukc?NZX?`%X~ zxbblVJ9x`?lfEA(FnMpx+9*Kc7B#!e?`GsEQ;ZSHgadUuuwBve5-l4M$VdpQ>9b*(|_ zYpF72kp7;+eWPS@C#c zAbClcUCjNpvTDYM&xViUa=K=AqN1_+{e9|OsPiL)T@-n>U|4gY`U*aJBfzP6!2#_y z-JBl{C(JV^RCSx&R`k|<2TPu*HYt9^-I$fre_J5df*|aYCmH&MlwFTfR5X1uUTMpa9dix>r!hidf=i};u!|NbgQpx1LL0AV+FxCyyCBZagNUWFoqMFa4D=Z_ycL7Vdo-AQ1|dZK() zt?}~v)6k7;&hu+jb=h|UgTxwo-muW|wsW~3Gv#$tIpw^*zP|tNj;H3tsczGPu+*a_ z^du@xNB#}x;X(U!V_pookvK>d#D+|jRH>WNn4f2%mACQnOzv~EQu}*}W!^+c%@>FU zCbszuVi!R}nK>iPt)~Tok#_o>YJ=dY45oq?O|#qK1~P|4+I5Go&S9>}=+ECe3mU&|`0tK<&k||;7O*l>}E1b_RQLd%A zd8k|G)a-0Ltw^BuoJw}C=XA}<--8mRrN`>)DX64kbb6Z+uS@`f$+&zWP$?z{yGHJ7 zRgt66m%z@C`GWpV;iN2{M+rC|vcPpiC9Z!iC{t9AD{HPnn6QH<6bA99kXT2v{<0tI z!c?wr^;uU(An({<9xa^=Up9!QJo}-vdeiAUQkdT*(&~~vnL?g@vQ)dZGCvq`FdZud5A5Dp@7D(d(=uAS}YwK%lHJKOHua6ql^ z=?8_J3g({lPb%h+WGn7&Y{M4bQsfw=_kbn3?GhhK!5fI(i>hZ9 zEK$-sY0Oh~B>c^E69ji?`Tq3dip>I*spk&mZ^Sb9Bpu--0?)!rb|swVThhFwF=j9> zJtF%sL!NHs<0dJ3Ny^&$AC?bZx>Q{_{=`yAS|oGo*ywhg6mC15c}L;vZegld`RtG5 z5Rc;g(&rAYqYcX=ZF1*+{v= zOSWu(QQ$RPh$Yn+>9g5yaLYsH9RBf{r85_3*4cqp)n6}e=R5L!ZG*W8%E$L z6c$nmJ#4|eda@M?t6i8jp6ae=MvRNZN<4cTyepf;Hcs!FGKF8;!7<7~ZB~OzgxvLr zEhUv8=8eY0qI{-3D!7UYNPi4;6s9{F2Pvc8+=-Qblq%QPA?lOl2i*R1~b4u-Hv%wl@CMK*Crz} zqo(vyXhwcO0Cla`IA?9J#qLAfrC?kpul=?cYpwsA^8iWe2hroAskfY?Xpbv#l ze^{exbJY7XpF+RNZbe55<$O9RNArm;aNs)qWAe{lQAOtlyW*?H-8{k|ESm}h@z2#a z;oa#|CZAKAkE-@u%d4xqM@LqQ4hk@N;~5obUm&yx-kf^X9zy*FAQ~ejtde=~<-6RH z*|(uxDbL-*6;liZtW-(3o)zq>zWC1{CryiH0s`&z`ixIX!B6YfRTosWTlS_= zvzZxI)#MPdokt z7nkpocL%s}WWpr|wT)d}^4+Z9aYvE_J_~{DBaF3VUO6#q4rL`RYKgaYX~Ys{v3Cb# z`#L%xQJG!#h~*$kP+CPnB}+W_B~KDP!Azm@et{^G6DiX)4&`B0$(-b>;;<*5%At|x z4*!AMTPix$DLPXXtF9`P6dw1+^0X{KcnOpcF}aLJ{N$zlt`Eb-c|F&&vlN~=*E`W4>l+%x0Es3} z?v~m3wJqq)5vR{OsJrd8XgBv}!}8Wl@$=EB0omJ@p?W2+pQdna6yiFa|M12%>TAD9 z-7r^X2gi@Y^fGt34mNJyU*h@Y$bda&cZ|&tt}Pa= zS6g7SGh5};Z;$@j?eMWmg_Af9!ruFm&A57AF4$wDkv4WW4~ra#PA*!{+px{p)OY_; z|0|QgmaQl~pJcOC)7a86em9L8ESj5~jQleHezocQ`^3%hJ?_d6`7^QIS@$8$rg|ruEatp30>Kh`A-HUt*nSo+0iw02=}^cd zAe@&N*f5ayQ{hUmklCW~A*sMoJy=~7^yB3~*fQ>*|xs^Lji z8NzI<9fY9H0G?>L$y4F{rZL9lijt;@^0!ePpC?=X;BL5XL=-*2oZ%#u717|WEOfJj z0YRr%-0_%jjBW)#)i_(tUsOo(PvU~VJIn(ZVja#h|4Ue{QnA+03RPnkF+0fXkcDIdR#REI_HgT;0x5FjMKn$OkK zCl{~t|*%AD(8Jp}aM=|1!*DcfK&Z!TQ+>X>{JWv46qyODyc zSdLwPYh)v6n ze6pKrAV&ZjXHYwPqS|v609!kLXHd`QPw!>^6mRbJibHbe;CEK>6gZd+=+9G1DG~JF zrInMDTkCyi^}lYlH(jNSXYfM0>4Lo$^VbOEWx3yZ&XKs78QjUeOQ&N9o)5X>3N*m> za(*s1?gwImqx2kD`}id4w5jxm%~~xPN96>wm9={WxnDxEQ`qEwjOWxZQ#$1ilnswA z{YgoQh=+xGL$HP9fc-{5F_rK3xK3eq6%bbQ7uWhed~CQ}JCFY$OidzW_P%Y1z9^=X zy4hE4h_@kn-}C0zfqFjai~_B5r0`L+dsH1^T(v@FJ9-hArFw8}x*diRo;1wsZ!^*0 zQnE4GkvTp%DVN6o!Ic%dk9(IatrAoHn$^#m`bt%sMa2jF6}v0yec=!-958oSMbVv3 z|F{yy!1cb}`ug29x(~5)e`4d(mGj5}Or@9bO|R*vO~1Bk)_?zd)*|s;oGGn% zUWLqhR7pieeybDF@}c4{36Z7CjC$n5Kd{_y-}sK(Rl!Ib3@GfDbDOjXFfRuztcL9} zkfOF(?zJPNu~}Ugv^aqN{qq$z;j^^m%Lk^fEjLllj0e~W1QW!?o1bo5J+2xKJ3{t($$o2@hrf|c(ie}D zpiJz)`>fPiq*`NlLDL^O;Q4;j-2EJ3wZVZ{ZW3HK%e#+5aOjYcEUaLJXZY#(a_3nn z>O$Ct;oEGeu*}byhJyp48Jz?{2x8VpmNso&R`I!tpU8ml+rZ+pG}@qN+gZ@?{ouzK z))d^DR_6p0Z|@fj_aor!WYZ}fxpj&+6IK_~=xMgadD7^sazjrZmEs9LrRPYZ{GcuW z7wvvfRp~S}PfZiKIea4AS6Pjv=Rq>z=1_PD2nYHy>F!j0|IY$=8L#qqdwY9Dlw}m+ zg;4NrEZwsUWVgRSoFhu_S?pc&V(Xy_$J>Ae$+a+T`guV1uN zfMw`M=%U-GO|Y8dMx5*ccn^Le&`y0Drr-`wx*wuKvXyl~EH;vdT+jZNm$tB=7#j?_|WRBeor#RbF>__+i@xxQk7| z=?c}|q{+37)>!ZUT;eGIIqD)Toy{l zU26>3H*95WingCyh$(67-I7dw?>(kT#{pm8bNCaHFitYuJkB(A)4B;|t5kkWdP(AF zvCHI(@0LnAe7Q>P-P$serYP^9s~V`Eogp!$mrl|2fGf9Qa-z0gUTaWn z>+j0Ty?K(UWvPkF-1;PQq;v(Ev_lQ84dMgZ@pwj9JoG*Q)lTS2UM-W%%Mm( zn6anj*ciMTXyqdPapG~x5jU~*{M48hX?QY|PK;`~+Ip`;G=@fu!gaFx*6u+Ew!Tzs zLs9&%eLoJp6ILuGJI%e|3!LpN@+ZND8AV!)E%?-bYXLc*eZ7zh6%`d91ujGR3!*+b z9h8)cxONHv_X{o+Z&;y&DRRyoe|5H`^w3Z$7}U40-n zn)tpmt_+n?Z0IE6(cPEMxLRJwgq~WHSOHobA#+Vev>r0FD9NhK``&W9?yCHt*IvzQ zTNw$JpL;n+o^9^;tTGu_)3qDhTX}K@>N?9f9&-)D3$=oQf~j?u7M=+O^wM*4J8hx7 zxtVbbJqLHCp&&XMBqbe7^Sy-@iEZ9{HQC9XwqLoSFnlcb7fsHBZvULopwvIF+g`Di zzA%PvC85^j{*}z3%pDKL)=FVIJC&B78>8Dx?+Wq;6XU5l`=d#i_v1|?BI|$h=Ah+DD^zV2cfH|01QPA!We|00KBs` ziWz6W+q2puVi)>xS=u{hA0^r+=8!#@V*Pjv%C{N0ZJe#VPC5N0SY))H>8)pUh^@W@ zca4Ie2P?7KoLroxOz765=H;v^Fm82Md)y;G?r8Gp&eO9TG_E$SG}o*7zyEZrqyB7K z|DKG#M8#)HMRzgc$cc|p*iyz1a%0YPL~hu29&?>a0v>E?a7*tXdVJeAn>#nR<6AHB z<_uCg9;FHjKRE!9h)KCZkcU$4f`-H&9guP67msUOG)#UUTevHr=M%(sIoiEEQb%ya zUQoH&RH5!UPo7AHZK!3<`)Oj{d%?9dYHV z7qj-=m}gCFG#gXQ&^4z_CLFY})#oZzU$G9NcGG~@dga1SF`gmyjPpjff39CG(`PhC zv(a2jc-4+p=KO@U0B4JakZBcpb-6a@Ls%oZFU)CpZ}TCqO{ZB7_Ci7vc84K$vh+&M zuL^;OA+Ji97nYIdN>1lWt9N6eAOJTRtL>pH{Sy+>tc)DZ2(gyiT^vgY%(~Lu<`Yt^ zlf)rIR~iL9h?ZQ#lJ6>hEcl@y06N}+0?K?_|8%QUSA(uMc=i3H*}MB9O9v74N)>yq zL&>PhuK~y9X_q`A5XISG?!9}y68himE7#y$2=^d2{gQzve3ZC2+jE3n;+U2uL4>bTUmoG3xVKiamnBydB!KquQmEaONcX22m4LJxK+u+mQ{@) zi`FF?x|@FJpx!TWXibI!hFFt0`mhaOfSD1~d5R&-83M{V(O43C4%e_h32$4&BlT?%3+)fmmGJ+E$1ob+fUg zEd(`dyTdk{#gmfX@87brtLfy?ObY0MlJXyYMld>z4nLGutPz}35VwziI2(#+d|tWIP$w|vN4y%GaV5j#&e z!O@Z{*ncnBb1_0h+_d_#pJ~sLtvF=A>q*ZFwVrPEAulRMXvk#`U zL;&TPe4>F-=p`Lz@vmO5C(Nkfw!`_Cj_`0`R#-+1+>}Oiak4pkpX$hQ&7o>C&X`MC zzp$TOBnR1qKquc6$H^3ZmuFjv;$E*BKQ!`$??y4HP3Y`$pTb?xic z>Yny}6l^R_z3XJ24Z9M?Y`0Q_B4?qYC9033)QgD?fv|CISvbjS&8}#%VRe_G2Ne%J zGo6FHC13X+djc>m33AS(i?Xw<^L`5dCL9MB>gci^R=4Fy;fIA7e*nnCW*xAoNaacq zu0(>RaU^q$jJb>h^XCY!!v0Vj!~EWBEVx&pdxLj<0j0Ot-p6C5V;59VKOFVJM=$3p zan4XCK4@hAmw63-B=9E(d-aQz)Rf0Lyk7AHYTIw$rfKv7K@=i9*J3r}0+ux3sprIy z>!PA{6YFUoJID8{q*2Rt#pktQXTf8=8C5H#4;0h6SifS@P*(xNd)z4(uq~Kuh}IAm zkI1@4RZ0i@`=P2eQmA{9O{B;$IV+0%DWq5J`t$UCZo;i@J%B@L zuZbdX*WHFPMS~L>@ED(xH}{J(@y6&@Z+Lo@yxmh9n7JYCnBwd%&Sl!Mf&BSA{MQP7 z)7rnxFFS(ysYE=W8&SF%Qn**{DrEzU|8duu2hGa&m2VobB%W%rV0kM;g2v^NE#qQQ z50g?Va`<8g=jJ#7<*%bdw$R}4ap{eUaLF&%;WqlW(98Mbg{H8Dw`KUORZ*o-$*)Rh z_3`N&&|DR!W-Uyi^{|!d)k-Jc1CYyz#UK9rcLqGMh=a6DmwWH{u~+|XR-Ha>K;pEj9oS|2{jKL#rWU{?Lm_hyxd2QXQDR5iqC?_4@KKzm|G9e%fAE@XfLFH!8eDLoGw&6oMEzhCu3hFXrq9`Q68B2mE=1fbN zmebuJ`y8?W%M03!eU)qC1$XrQ@dUqKDfAHRVgHF!O;R>NACcar`8vbETP4>BO1L@; zujic?anNRCL}Jug-QET=lg~a=uR@Nwt-U>Gc2va=4s^yY%p6SuN{iW#BX1=am99En z-vvixR;M7WYk0(Xe$Hgq+_} z&VgU86#n8+Re)~o4w&iY-cQETKbLtzJfg1a`yui+ri>V#s_4EQKZb!zGUc~KIw??F zKWugtQ^FbXSScSJI~L$5s!LR)2ki{z8uOc=ZiTM;5B*ukeRRp3okqiVZOwZUdR{%} zB#4XL)j|V97Cr0NH4uLhQ?h4n?^u!!I>w2e^1|E~amx388srMVcEYP@NSGYF?uP%{ zxWGZ=p9F8D%~?A*DUr51bcfkb&m6nDu}L@OCsMhPK_$#Eq585Eim#(OeqJ-}9yX?& zw9ST}YFj1nvT^R0E?M}Wt&=!rHl3**@)0Hpfb<>l$C?jj~E!&?rZ#C$jRm$?XGx1U}$J=kdoP-j@!N9!3Z!J1& z9>>=plsKNlwX5QNbA4{~YiJtZ)Ls-0V(C(nc>1I-V#Yjt;31IQK1Rgl9u!*sfqcoCp`cmbq!B*>^)&yJhh! zCVT(P{EN}lm{zB?=n>I&cC;m$5M4Zw%T`LqD4kSdQ)TW>F*i0%+-E4>Lr{;D=R~yT z`CNVtOEHu<23EohE_24S9c67nfl;5EAvW0ILrt_6v)6Jo|GcNW`2-EKGB+)KjYJV+mL;pTi`Iw&oGHRGS`%vDa7L@&8tFl}cl>ftS^JB^l@sqx z_qpod1UIS4^AatzX}x-0VI86>{4+Id`0xQ=_Chch(A`&aUwO=P9Gae4S9NulTNJuy zjjTP>b)3KGdaoMdzWYEBCPg5C3A4Px(ZUOCXY28oiu=$=oa>VT;8!HF0p!S2fgEHz zV4~lPy_3a%!mA9{_Rc2mLzLldK!TnRa-h4rJD?ov?*3d+u{Vg83oQ2@(i7ySq5JU) zZK7Hmm*y!v^Hx{^^S50`HURQsPYVKkxU`}SS+)g{*#>5=zqQPA$K?=g$v5MaO68oN zRddEUrUuw;lG0cbuC$4l-+_O2`TaGTdb=*Ot_SzB+P+7$d-m7wt-mjL*K`)e5(@B` zQ3>er2!bq7EmodN&Vx!=UTRx2m~WO-uyq${ahDHG=Z{sjEJDKXj39DJmoa3984f*y z!SvJ016c0Cv*>=p!u|-q`_i@=DfKuH?a&*N6|B|du%5NXnOaIR+9X;)T3ox*L{H_C(?RHK z)2Joln+$)ze8^i9zQ5z@jsO!1U+Qh-9teAFsR2yV>}4CyY4jugmZx+@J=rQernvJI zRjMsVu3N=&|H_hKE>Icnl*hdOOJlRRO?&7r_s|e|Z8;O17>0}G@6D)d;mo7Cf>TMa zH7y9Px8WAx^_Pc-YQsSm%CZ7y~51CIc-~qy1 zTrt%eX{X$opt_TxkE#JVtV}{(?C-EP)GOvvy@Ra-F#-(oDDDRiBqKB0g-N84 zhKGPRy9F0=Zd&i}}x)ez!Y#WUeXI z{+q~rZ+(&$4IIL(O6Z7EEStlz7DZH?xoj8W@WDbVRs(D-SK`rG`Sxf8(R!8zJcA5c z?9e>KMlZmxI$Hzh%lKzbzd=EoLwQU`d_Aq682?emmNUC0I{@JxJVfLmyS#+Jx*wGyxTw_`ZxcC$*{G{Ysh2BCV13j!Oa!^3>DGN z{vtR-R~4$)L*aG5+aK<7hxYSYA7CY|xl;E~`laauRi~j{z`M%nN@g2*!KX;I{dZsn z`V?E-29nQpL)U_{p_J8G4Mru+>Tx)~7v-y_f`e?Qay}8pfb+v%KKOWEGNt;sx&p=O zM;j;XC1=N1+QK)e?n0^^K8yFQ0BRYl^HYv=+JCM{b$#x`-vj!X%6~S|VSszKT@mGD z1pFImmc{9(c|Rpn&VNi66cNl$DB{n3UOVY>xo6FO^%e5C*upnaeHEfbnyWIQ@8^wF z9cjQ+t6eH*%ziYKZ%Gfz{Mfik0R%$=A<%OMMTM3afyLE;h z+a(L5;I-cXLf!L{Tnj>9{5v$y4u8ty2%Onow7$e@1-+TwV5uFCz>fppb?61d%4iW4 z&CE?PX7b+9UUO4v630UPY9}lWePi$peB!r_`W6pptush7;f;`bC~3I)aTmI;#KXR@ zCqMpOu+h`gEoAA1A5HWq>8m_EIOVGC`+lE{?4j}by{c$KCg@E@=e9Hy#_|>n%9Z}) zz?kMv2a{2ai}z7~xKeoZZ8vxJTXegFF@A&BHgt_kpoFBrXhKb11xxf9pW$eVMdYMB zd9t~TU^XTIs0L%iGQq_dw7=4TO1kfl-M#nVNr0}W!Ugo*0lQhZe_(|Qj*MiaU7nO( zQ*XJaPKJP(h5(Rt%JEe;-N%30)%sbb8M&6ISSpYo{5OU<(U*T0UYMb7J9Scu%e!S6 zM1a3^W|IrC@D=*OwF86@ytS}okO;xae`(<*gZ`C5P7j&&IPYgQN4(A8lUfSZIf|C7 zB}YeMngI~+wI0`Kd%qLi8}H9NWWsRbT|InTYU}DhL7c2%{7;SKMtsBo`M*)Eys+zQ8sy`l{9+*a{kpUp-S4-?22ji+Pxx{EiMFry4Y;8%RJGTd zAdU;xi3C7xwc;znb+u+`)$%^WvE|*eI!yI>xS)_ph|q?L31h{}X!91O=3lUDkhN0R zEBku}EDF{0(@rs)Poj>!lrm+fBEMMicyk4cq@rikLD4wT^VHu3geoTq(!>IRtT=x* zqCyA`)g@$8MxcMILY#vvQjS%JosE9{NIUC^vR8mrg(Txzm_H^v)!FGbK9$Yod-^2) z8*Hi>uc)xY8q;J;_#iALC8a|TXh|xyrYk(H_M81~wnEQ;DgmX={oR2CeIXU_KUYtq zcBOyX_ikFg?nv}JD!p-r!JjvDc2{468f&EPwU&*Lo=u3jBVy-({-@?<*Ryr+^wU#2 zzlTCHtOwlYGDZAFU{3~O8|Ik=jY9^9*7sMu_1F2TmjdtFmTWj`FO5L|lvkmefZT2Kj*?Rzpic}Z@wJv&7;Dv_8yES(oxHZVM}D3$#pHwiq(b; zP!Fdes>y0qM#2^PSZHIWS5;O-iJsfpj?z|0>9t)kk_!eG-cdzS(p4>3RdWg?BDeN7- z7F=Z2Kb)K5rB7f57}@&H&WX155(=#FoG#EpZtZscv^*cs!7(Uqv8e5Vc(~W%je}`N!SC#|uGrdp4~{V#T&FBK>}nuG&zJ8D~aIzavQ_ z7pROhFV`9!P{rRg2=5@G+Rupw>iBE0?eQ&$5QDdJN=^(7M{yaMxfhweE0Rq;KP-~& z*G#ddDlV){&dDQaus=Z3S;UtyEQz)r>?adyIsIA7<#fTmWSV7ygEkQnaIhB^xO;#t zi*=2i6PfmJY1?f@%&<~<=ST*94b1dW#H%f;0a+CJF7v*~%U#duh zduv@Y+%F~#2HU+sTCuE-3Uq1>%nP!8}5ytepI2> zcjG;8Y;F!U*XGJp_-Y)%6e*Pask$ot9DdJJGNm}f_6zwbc6=zys+xY39v73jw&d(8 z#j5}JLvOB>+B%p0XhOLyZiz`^_qVXuZk|^^!_LE+lW8?;0vb_Q`=DI)WfQscKKX)j zkM%@W=bS^ay!~gK$WpJ|vD#X&2C0?CZt5>n8mnkdP*SQ<7~4S~M$BE}=&#LD5ducy zP}T1i(giq)D(9MY#;$&avjDO$-VNyVsb?JcC=b`d?-cWGK);n#0E=`~d^Hwk`_Wdr zTbMG4;o9-dWaPa{D;JA2H|3|d&h8Xly-=(}Cd;oG^{;~W!~y0rdIuF1WfJjculF#9 zT3?su<=M3}thXnxv&J5P(YS`a6St}F>@w#g~`b#xH!7kXwPp zR-7GY4Qb8g7S@tl$hVGwAv?Z-nsexQdS|otGD)~%6@5B-K7Z^&->DDCh_{k33r>t{ zU%~}vnpD%=rG`(e6RbkA#);Z$%4$ok$BV9US3EKSb!*T@uXNT&8grCuf2hD*rh8#! zbJUF(XfCWdnLD`!#&KKDL2AV6kLhE3*if457$|}Xd^=d3Wm|PUNqP>C&GJ=A$NyA% zdPf~hRI$&2|D7-&AzEtaaDd&nyy$xfOeYakEe8cyc zMh5$dH9Xt5K@X|Ne0y0{o2k-J?C8tZjI^Fjpq-8{Cx(ZP?|Tu-yY_xp;vyZz!;Hz) zjF+8bZevov%#_GsEhx%`?Ospe4T8s!NB7{-kU3prL5|HCPeZ6_+i)zD_{LLn=ybbS zx%Rg9Ibox-sddBL(lVSJp-c*+nSPF?OokXMq(EPTfszx-!l161KBF1bP!>%mbjGh!L%POVp0{rjaZolqu0PqGp#Lrt z&gTt4wX#05J&g)2RXG(|k1J!Q8T7h+7|@7F_`23Mz*}ZIoqsz{oc4E9k^&m?4XCX@7<9Ov;EJMOYpW4?Z}hlUUnjvrpQ8#Z}`Yml2}jN>_*$6q!)Pr@$_Lqnvsz;a(tfmfXivgk!Vx$ zI%Q^hZ#q=^+zYrGiL+&2h5aU+i1B9be>P?vo5`|NAgZGM@;#|gtm-E-7T1pQ2{=WF z=FXOvNep40`l*VcO5Z9l;{*tzSSTB#h>IR?`<-jnYi2ilO8i#m&K@2SyL<&zNAO7+ zk%!*S+W{5CW$Y&7Ux4$g_G8sRt#c>I3Htw8fb)ZglVL4gM{tHl^CsS6{nE+trZhD; zG^lcksGx}!QTF6kAf_V^zLq!R`zTeEpe5s&G;sX@FYpGeVS$x$G34Y>%{G`1B^*Xe zUo%-)ddk;)g14muV}ApRsFUc9&d_plX*Y^x|GLtA5)tn=U}W6mZS8qu`=fMMFMSBN zVIJ&9Ir=EsG#iE&bHo(b#I}M@^pAg14Y%&9b$!lDg##?5Rv0Q<>G74+pbxwkb{p?L z+4-v54}@Ig6muy$Usi{XM(0e^X~HohJqKG<-VXG?3592d1Ev5zxC0YCBrw){_$~Af zv~#TGjc~~|;wmw(RJihsKd1q_ic=KdigJ=#k$ht$4o%wY-Z6-~X5BkRHzrg5&W~DJ zCJvQhB0;i|L0aUqrV_G-?3Px{niDm;l|ZTkC!)9lvJQ45yFqkqWk^~>tSo-`U|`dW zZ+C75ev*0MIedt*!b_~NG=7+#mNo^-7s4sr`Qs4kSg17l(*I)^V@*5OsYLM%u;c+) zOF5-jT3PmiZITh!Tsy&nAW--OgYBHVXvvXFH_AvWhkt_9AZ_1J=I`1?cdD^(EN?;jQx*hawY2EqyPOYITg z<_nM6j$B+!=9q=fPRi43?SK#SPEC*tq#rFCq%%w&|?@WKG()s-E zUZqArtg?<=oJ(jCvtS_#5sN6@p;Wmv#h1+y@tiG|spv-7?--p=qgF&10M)LQPKFIh z_4Xkywz(W;>c!Nsd0mzMJ8xcD*;s^xcopV{F1oxoat+>=E`JlxK^<$fjTKizjFIl4 zxq5ABGTYbNv1RA1)pKaZ9wzSJas`dgBtIf*@DGIn050gby<&>UKd{8u~WMLW?aTI03JS=bul zuwgDzmT(C*Hj5S21$2Wu8ruO{>#Vi?JkZo%qCy`j9$0WLpf;b!hODL+U9fSVap@OyFd^mI$t@tmDoRaiD(3{B zKLa=dFw`W)9Akm1q>!qGhZpdX^*a5s!^wR5(B5*-IZ0z&&W2k^KHDt|encNYGm+Oy zffS`X-20-v9SeJA%MlSZ-QNSP@b%I+izlio8l;UjOBT5Ap9H%b?dvD(RS=mE(0<#o zgXZ*ur_zn2Q#5^9^&wQlr&lPRU9< z8@M6)Epl}}sYEA+BW{`BTi-uqzkYUWX|?`+B7Pg@<_k4WiR<(7_?=)BTP%50c~N%{ zQGIMS=Tl0{hUDo+$aqDuw7P|?#a;Tf>9j>$bi+UkBoa+s=--j_9+_Y(m4EN!HZh*Y zN2669CMG<<6V_|@Ay~TBGSKe7)dLzEB;rrDDO9?r_dgl#Z_O(GY)JC1eP>l7eF-50 z_C^D5U0++JJL|IZuU=>sQJ4=V0?G;MHF+VjSZoKo6T2 zBZ?-u3P=C?vcA>kw8apI_a(TI5zf+lL#Y$s&~ha%7Ibd-6tBUG`iID{VRMco13EF~ zS(@SEX(Xh?4j$xHCP3&?g|Cqykl7XCy!8#L2@c>ZuP!zxR4^q@Gd;-yN&gEl-F;H9 zt(C!vHpY%!>SGSWSwW}}ON{*Ut;iGl+BzH<;qEaD0a{jS?0k}KAPgm_=l?i}Z`z#{ zd~!BDNLMj-n=H6*2zI7@eAc2;N0mLFT6O597_sv({hF~u2$Q5#tZ0qqGrZ2U$3fYS zXg;F7wAeEJv)dRgAG&Ld^fi*q##gOaSg^oQm6eqM2vFm95NDx{Dx1r7#9BuJ0Beb4D5Dhp1^QYVI2Jr1hyryH|(TYQzq)l!akdiSC#*&&fwU z&no{Wf3NfO`PTMec*5`yetbD%WdZ#K0Sli>aPG(v6&=i&2I$9c00{B^aE&DTM#3ii zoErvT6iPUE$dzB-^=gejNV)H#O7AfJ)pL;*1mclPUvr^;kJmB;mTFt^^*Q_sH_o6> zp3u_Y6v2KxYWicv73<)DUZ7LG^Ah^u=#C%X4Po=RE?fqJ9*QC6kHU?VR{P{S5u%vlT~l2--;{582=*JKT_A7 zEYJA{yKo!CIr1x*%`8+ZAIvCeJXy#{>ofD^sAC|3K!NfB>f)C7+s=OKdEWfD?Lm07 z1MG5hZD2HV>@H9m$14(tusP~M6@~i7i$$nSRAFy7W&Q}I*a|5Y#C?1KY!_|Z0NX_= zf>raF`GNeI4*ZCzUpg6 zcS?;nYJ1@|()uClpGvoZ0EM@CgB+YNdcsmOY0x z>?d9t?3a9gOrHVzA(BY#(RF&HeEMtLAZbS)6n3iT1lPQiq1u@ceuQQ3uWZ03G|0Af zGdtJq!*#;Njq}SFh`1rVL~vW2_!;n6Y;|43B*_)G>wqQsNr|1~r5}7Zv1Ei_RYG_- z+X9!))(7i0N2jM-=$#Ux)943P=DDyvjMGj!fFKH z+JE8apxqNhK4QK|^z?MuduicrV@0n8nDUKsj)G9;1B^4$6iU){>`Pbw+C8S=_S1R-`N=tMSx8;eLO zQDO!e3ZZscp}3J%)Ft6Z2K=!?6a%zR^gYxhQ&h^;l`9vF4xI+*xLL4b2C0CBwWQ}s z^WR!Az(RyEsDi>_H4I%HtQ2?Z5I8H<>lyrf4>XY976}Zz`MA9&qKI;U8m$?2Jvxy# zlFU~YZ-bv4d6q&^VzGbd%%>@dlyhfp@A)wh#V>{cohn*F`fOTrYY>#Nxq{;NO1S(l%R=16pGy2T|N=wjhq~()+NQ3-4j(AbQy8N$sM1`JMHrrw$p*~g|iWwS8$r)Dhne~*^tQ}SR zq2Kz8On1N|fgnk5s_+Db!U_)Gac{36Y#!tI*Upt82QHKDf7hNH6g)d)f~3$4D`AiG z0_5u+$((RRC1YQlDZJKe5Hz!ObwiCm4!R3iac6iu9b+xG6H`G|J1iQbKEZy&Ge#Ff zCOP7Hj@1J;4?t(R!%-q<37|>zBV?o;>PKK9afBY`C-5s(eX>9|8d$Y!UA0pgMWc=n z0uWDem5`Gq`-mz@h?=8|1HzKyubrDMUY9#@DJwm zq!E-R=!!Wss^EXmk3XRUqZ?MmG@ua6g+_P&$sLcW=j|1Kig2)Q4BLF~uFdag3h`BZ zq11#|4Z_g=jsaD==XH5eI`oC3u?fDE;d0R(E&=R%@e$u0!%L zs@Sq(H5g#1KU25`Wl;J{D!MuYBm1B5UESG9V}6~u80p~JaAjCh3~KFW-6|q?G*gF= zflOiVq$p+c$^^vR!JjQ71wkO^P;su41P=7k5!gX46miuCd3*^34+t5Q#c$IeRpgo1 za0biE0R{AJt|uv0-wTKYT5@fn04Crb3Us?}S5^^LEg)A@-#*-je85MGfe;Ya@J~It zohqfAJd%8p36)$0p&~?kNDx~JH}d-&))B$gHQ{$X^$DK0BQ$^HeOcI33#`r;?H?!T zM=$fmgD(2Mn|O$_AgV6}aieUm!_eMt){@jiLh`;Pu5`e!Kx`-SRZoKx%F#|SOF*K< zUZM#woifJ)qv-vd+IYrAC5Hu}?5ikSIn_;=R<8%q$F2umhi5X=lSCzz%~jLm?ngn{ zwWdVt!hoSsa6sCp+KTa)F>>2H(0kvB#T!T;PT{(iv>c7 zG)yVG&$z=UvKJQ+@b^V73pUNyB1W|By-GJrF{}1aj0haKbpdmrmR?>rcDR=_bj8FZ zNL~+z0H43+DeGKvLN0~KY|!NL`iC3TS6SNw2cpMDR#u0-wUgXzoRdWY6B-%PZ>=`N|^2su+YqNMGpp&SlYrx1m9q#_FUB zYzk`RLp|s06I*2z4uRK8elYXXUjQuc-;y@1Hn0r4rY(fe1*5}Gyl40trbq}1ROtB`FydQBaVelB0sCfC?&E36fM4L_k2YC>hC|ulDVszv=gzp6QeFKdG_O?tolJE1i(K+AJ!mGz0UiByondmG;zSq{@f7^}; z8kHLD@ya-+ynY|Kvtb%W&i=k9c30;tGTn@^wlvOq5T%LRAsIg_BkHnSu{*a?uafP@ zR8uX^S)*EG>1x604(XuN91+0@lNI4dA6htf@YtZIq9HEyVT!yX`Fx6|?cTg6lEYOk zJojW~@m0pf*p^N9;%Q}yx30En9TFtTJj>KNEks_f2In=X~HvYRwjjXJ)U z24twyk{q2s8>@Y2e89*lmiokT|E`0TWCF$atxWYhf?R*TuV{RIdC;eDja?@()Twx@ zYd70O?q1W<593}VI5p{0b*1iuj@@tL*~&$9o@>D=~Um)oW1 ze#nLJR{2j=UK)2Gu9afa&e$8{GlWky=NBe7!JVv=V|HCR-LZJTBnr>)O4L$JveA&) zVA-E|$zkVN=9NH`uZA6gR~Oq*qn%!Qqbz{inB$81tgGB>SGmv(K|!-UK6BmJKDB4p z)_X<2yE{}`i4}{fy-|?R5ujoeB9^T)P}6pw#?#`rMoT2?GwweMVY$*X@=PD5%ntR^ z>sK#6ykvKeRG!wBRh$}!Pkds_>Bvj(!@#J(yMEc+TPTlnp*; zYV}i34^nQQvlt226Rx4tWW&tDR*_7x<9aF)A~*}RShAEGyiJt}4@fO!8`v~V!))F$ z-*dF29A1BKE-;i!_t|=7{mS5|9TASv-S%L+W;Jbg(e0Oy>d?3Kdgs`s&n|a78=z0M zadTq#UoEKQEu(ZGql}e{WSlOPEuqJ;)G~V6;KJ*?NQ0wioWtIorOfOOc1g-Byjy>A zS*~ZJKJohMSjiXlbaMyS>W|wl2XydC(JOXbKbkbPLNZ-qF}~M*bQygmRG(PfGDG)B zOc76kV5H#7^bfWcIu6W+d=xi&$)gX25iuSJVWBJ+?AayEisQIekKVIX`%Y&q_xrPM zuFz7S8D^1gwZ~7XiUUa8WnTC9Z=aV-E;HJZY_<~M$a|#Xx-CaW-;}*v^4HnnCOjR< zB2Q2K&oeyF>+m!;t&beh6&XshVB5uOOz*P8=&V(q%LU6ZI~V^V?jYZ0)z>c>n@nr? z^m)s%*n$wv1H2Raui~n<91C$O#2qds?R}CqK}1^{HrQ-)JHEfib327`L)FeVTh5=L z-!(|_R*EjcI)G$<7 z$I#I-G@}-mlJ>MD%IBk_Y z5y$ylOh?Ia$8Hm&JC_g2yyt#hQ0>eSLCJ6M=td1)!vj7OW?py2%iQ{GN=eDu+3}N^6YW^4i}kBn%m!HlC%b&03YAxJWcNQtA4>{hY^$RfpuM38JRg;Njn&QJ;n!7&lfu!DM{oIuR zts>P|ENDi*42O*r7oW8tZ$g{xkI!z^g1tc&W!Gh>-}+5irycKm?JUJi%-ilYEGsXu zUHKZ`p+!xHs$m_6>!1kAAj`7JdD#(EK(tkmUpORNY4{6mS<%XRIfX{ zb?=TRD>h0zHL){;{qQZP+mBrJf-=V+@g56YN#+tt|A7*j4wBVga<9?9zYDF(LJXCb zNtM^~c}Q$*n+1svhhD6WlVK&-H7qHhd|&)%P0_$2XWid~!=r&Q@tL55^7ec74b(Jm z_-Xp(^UG4%zInylbYLQK*PU{48;!~pryehr?^28t*&4pIbokopyr0RJ@n#>_9tNAl zh)<~#&(GdHo%c;FGMoDN#n2}tQ>a6lYq+&W--jq)?JDE6#U;{UZa-dMqYHf`3tY6d z0!fz!wj3JDam#!@P*d=d@?*o``#ad)`%M_2ejk=W6fBb&Os`_7Vsbo*ivZ>*u%QN`IsmuH$!X({!LSnAaD zd#~kHUv@Qa$W#2v7-`D97{#*nN3?$6p8g$l%hKXF{SG%n?;R;uh?jO_=*_Z=!Ui>q=9%=%s?t>}#OUpxDpVtawYpU1Pxn1@ za~iQx;KcE3l^?rzWcpeY#<=0bzWU;*jDkYg>F$P6k4Lgs=~^VK)|y}K`QkcLd9rHk zm5YBZen3tvLVGbikFEKQs6PD$F=7?^Lmg4`ttLlR0Xqxnh)|^v-k_!z114Ay)8f4= zscl6fJ6vzqnFm~cW+b&X)EhMRsXeDcq4?D8U7Q|9wFk>YJFRM1&7@gOvQ9gQ1Z4=x zowsgqOrKz%#*1|CZ_2-1Ln*-?;2T)9(~gro;EPU)Y5u@uuNj&Q5z4bMO);&Jo5^^% zrr>_0AeWu@mc$ABD(%nB+TT2*Tz5Vmd*-65f0WJQj22s>AkF?C`^yc!1p3_#L;v5I z9(UivxD?K!!ncIO3Dc^R7O&f%ur(oX;#R7~Gx>@f`w+I1QZ`sXid0~dXy*n_|FMiV zgGOag{&_5j$hfyqr@Cd-qrvkhhwQt{8{2Rv+J*KDZ^;imA=I}x@KY(|WL%dzx8~Vn z?6m_%^Y1g~_@9N4T6TJ)kDZw3TtOpCDxGvu5hSnNMV!mDGMNmQPw${5F=soKt`*5w z-%GtGhUog8dE)k%u%3Qzw!;^6yNMYKLj$ab=F(J&3j}rd+jY^U{}_~ssNq+Vs29&u z-E%ts6sJO8y^Ty5iXT?LGXHqGQ-)l-on8Zs8WonDrr@a9^d=Ec1zqd(>)mqAG$^oTc4aF_VPUfw!8POlb+ z=bo|;Q{yEgR1&Y`eTeJX9eI{f`0QQ7xXaaZKc6_KkUZ|5*pbjQ@IG4)$wYZ&qO#7R zrd4A4g0W+sTJn~QxR54XkP&gO!M4%;$90s?xme4sAB%r0y3)dT%I00cLmlyzUfp_i zem#z256Yrh8t0=~Pg_1?_tIa9XW=#y0#~YrO@qjAwp`ElyHz}SIzadM*#d6CFM0U8 zS-xPrIhA;et3%}Nc%iRdl8!RA#6@L#YML%(1qw10n(rh|Dw0k!F3-xHd3lk+7_W&< zE8W)CMgwmRGg{fr${%gJblLgdEJP1-6pyon+ubmuyC1?FrRMBWsj$oELq|7-V~eIS zb6bL{uHRCl8F`S*^_VvHG{J)E%Y_qpruoQ}OE0dIqqtyhjPiM*J)TSL$Pr|+f{`J$ z>UFQ|yJagJM&p`>U+s%^Cn8=P%F2=Q6VH`y+Q&gE@HzgLpyy5(l;SK}RH=uZ3= zO{_(KK2r!-Vr)5~j?1fFKeOsgfr5jvM<9<%TN>KjY1plBHocCnZjiQF=zKlZ4@HUK?}K-%(cQ zs?R%|Z{8=vfZSA|8-w;WLn9G3;|He3_e@8*<#2q(hFUL#OjP!6VNG#DnKe94}tXVy2xHinEX_@Nl=8aYkw@Eln>K2wnSwYEx)kV@o1(=!4wA1s^u7j-(X zm3ii_?&YA@WHuB_s2{A4e(TIdHKEtJwU*Js*df^YdFxy06lGQ0?#2)5fkOk`ZoSp{ z56dIooxNeXne<-2h1HNM6%kVPN(oZ?8a`@qOE_vHoQ#P1lp6#XI@jabrG z*VK9%d&b=Zc-g_2W|uByQx?Zovs`;Uno5N{uXu@X&XiwOK75Nk^8QB&nuD-XE{1wW zldaO1XPe$8h2Vlb%7|<6kDfjySMQveZ8~pbne&KOZtd=iV-=~r+okinWtp@DXbv9v zn8h5upBeo(OT+D}47pu=?Ar;yh;Qbba{(6KPAp8Lm(%2li4M$UYJVDCAea246PD*u z#8|dJWmMIemE$>;leBvN#9-Z%BWt07({w1aRo>exOB@$8Iifj8qKZhQBz!bI=iXfi2^|*oOwh}qB|E=qcKZI_K6Xh zPrbGuPol5MCx}_sU0s&6)b@wAb5I7^TmhMnSTvqi!wrY4Ic<{^E~Y)ZARC-zbeKge zBjg$j^%f%@_j!qz)wyryww3yGNbV>8Ec;vaa9h@CgBvd>6ecqR-Ai5R*To1Qfn%TnNtv49}Q>h^_LE^E&0qSEqU86WSi& zHaY_r+$n9=l-FnW*?Tt@>5Zmy`=g#pPwwAG|J1~b(k!cS-!4=oDaLuJUmBG>WEm7`8HDd4*Xni+ z%x)^(sF@mwIGKUXV|CSExXD9_2JwPNY*-%hdilRCS(jy3DV){gAD@34+aJ3v26yIe z9)BF?*>BHvPVn8w+pRHCmZe`kqa!(4RY;QgDThf*my!-AmrQh+b!#Oro z_xPQYZvjyT#Ll!Gh26DCw#dAV54w4sKcB=x&Sckj=;ZP|32Q@DSgHL!?T{_ZQmLMI}}6yeF6 zsoyBd{-vQ&B{D;${fc3bQy{N@hat~YTOXMYoukykk-kMK(>UfwCdZX%@6i~rXif{Q)uooGRz|BIMn%$7IOUQzw7H1zf)~_e=v9#$E zanVHuluNjGNc&wbD>M9Tox(a2X}8pp^YrLoBWdh7%cV=ryR9uPsEBDRJ9ic(@@2g5MllPYW z$lx&A;;MSRJvL@%ftvnOt>Bep62=MVxBf{CMg}i-YT_Q9>&5M3nMu3PsnGelx|+yp z5eq-vEtt?0#3DMaU??be;B1C!hdGPpn78~}FS!n(Iy#KYUZP zPuIlWQuXt_DWrV9EclT;{?Nb@G61_PyG7lqbut zpL`OjXZ8>UHS;gFqd&VmGP2L+Q?se zj|O<}TWGTAGhL!zdv}PIlPA52O8#KG#skyZZ{Il2RIW+tH8&pVZy|S<=H#Higx*8s z{LJFp^yC-DNa9ayq&z&{Bk5M8Cu>v>DmQxN3?4jz#k74G=yCeCqRt&kMiQ!{mef2(4A<0eY<{|?>dmrwYuSb2P^mopvn-QPj){WO6 z+2t(f=Kk90e8w#Gnu-mnG0PRxL7a?F!%_~*y&r7FyiyWPH)=TM{R6JbeNFV9IEFrf zfYKbtFZ|etK3o>CgQ3&?-AO4t*EM{S{@auLB<>tE?sH1Jo4$8KwKKLWDK1Q8?YlV} z&FRmJ2^ZEKUS##}I!(plXHvBfdy#e1xb^Y}I(2jLEJ{JDD<`*%eR`2BeWqfGdGh5f zHCKK0Wcz9N)5G82T=v}arh~rh^z*{D8S#D@^0RCSyeMhz)LCGmG{M@x6eT8poD0@#?%6SCJDe z_uDQ#y0K+zc(C{hOHqw0|S*|Zlc&go>`MUMnQ$5L=C=tgq$a88Y@Yawe#uWcJL2tihm!rxKbKJD-V4GF4 zvKhIPG{&mC>kjlOm>Ojlt2N##Ws^XVGLtG3sLZzxk3zoImjYG)a4 zL~rlGb5O2nDJgKV$In04%=6{!=ihOw`b9y4!m79lwIn4+_Rr*fgX)%VB60Vo*e+~X z4PF%tD*1VB={?yC749I3AhDoOnd|3M&P)|3_tv%gGn{g>u2gst;QeI1cM3c4#A?q7 z*&DZ{U9{-$c?tGiwg+lnYiB=vb$83_W~Xt|Q^?p`i{X?=h41(P


*xH=-X1$F*-u0mSE#3BWty&M;Upvcayl4*|l=+lDWj8`9 zb5h%gWyBQ!K{?{IT2P#ETtCkJm3dH?FJ4&Xj5M`?17C!#2lu6{tyJCG??p&)3em~+ z4~{-_|54{1Mb6LlV|Q=p`1uGIzWz@PLd0KramM|FfMSX1XY`udN(|_Vt0&{*)gH*#y(wi0$CVKl+5~BqYTU{e+ z%TcE|;=q&0t7dL|)49(3kD^y+J!(#>qRtQuvHd)qLpSz3TyQp6M&beMzDqI(JeD2j z;tN=Do{q)y9>>np&(CLH+Mf83pZAeI{kA%H5lZbb>MT&SakOl1YVrt#U;pQq8V zsNKEGs%}B5m6uNBhmU(ju1rdwFo;?|A*dFdLlm|n<{43&6Yoy>tRQ>Z;4r3`_r<=u zGG85j6`PE+k>dOs&Mxgf@$)q5ijNqFQYrK)#p@haPwCGbms2~lFNTj-E#aL{lxcoA z>ZseFKE1u=1j#k6!Gbn^(RQ1o9R&e5gTyU&(_CQVEu|c4lALKf`AvClrT~xgZQwNM zxX2x}HIdI5Co_E^aCv5TYN6r=X*bWs=g&QcgZ<~enyktPVn-c|O~m->)s>%~zSKX zN!|&%^E-rV6j$gFjWEba47}AB?<{X>P!b}Oo!nmk*g1VC|3sXII;ME11-%MX^I911 z@d5qHZKG}K#z%U}SN9w~qFE8cF3bMl+?`-|dHKXvz7N}oybcBz?v(0(+8ETRX5dJr zr6tw*@$#`mj`fQ?Xj)8n-v)9i*9tY5Ib*x|lf_ppXnXNtM|o2*FKP7`y;_gWUp0wW zMxA?cO*>jCe)5SOulyEq8r3$nnc*(K8&wor`y5Z-`T3*$V&LazhA+0e(DaK8ym69F zAtT2*u-j$bI867Q_&JUXznDhXaC%e7GIPD}FY)AfF*)v~#XkFC!xE*?KSlYJ_G z&MH8GKWdheQiSwVt){}dN7DUK$+QQZKRo=VSreD{HAhfz%&(%4fD5u*MMIU1S2V>A zC-0-R-Jy2sOaw!XkrWvbvz867u?~9E&L9~F9mnf8!{6i&Y$wO(;&r+Noc*MB3raN{ zK(8Bi+WzKoS|2f^>;k*AG!FN${2asW!X0Q_jEEtX$i<(D&GjzAGNl6bue_=PJI)@ScP}H9BYFawg>u z0}5M?uPX}^(^l-!+=_NP4hga333{?vxunaq>~CWp5mB|y!m*Xn7Nt1};e17IFSL)& zc|Idf$)>?IhlaWhx5NaC=xi2KG(}bbTs;$waj@Jd%w}Tm3M9% z8~YQC_l%GprPrj_S<+pKWZn{Ux1T@8UrhgbHRq**l)f|FDuCyc6j^HUF>G?;Ze4vjxHp^bV#Ipm>dqQXU!h8` z4aurES3PkDaPhbTVsr6Z2T&5y>Z0v~?}4NKiy5~P3JWRkR!JQ+XWmxGm2+UV+ryTM zig#gK!Qp(t4rw%0(K91f@KtlHj5TVTGSjXfUXsB)&AH3ORP;mw?}*DN4-CoZ+(Sd~gKP9UpDiT=aSYb?fG65Kd6b!uYq@yn91>|3lbbl2rdO{T|n z<>~2Kse{cY_O7)Du1}|~f4r0_H`20NVsnD3ROFNDH`bXS?UB6YZ6zVWB~~nLSa{p~ z)w(NW9jTsKx2jw&awh2$eWE*C{fM}T_Ib+a0{T4JDgVmFC6^Z~jiI7DzjVvXRaTIG z8C1HxMN4OSk(6W4{WocL#*boSoFY^aB>Z=7Tj?|Q!|&ZP0@f=pS(MW~TbHI^ocQ$l zv)aSX+RMA=7*(`+lSLH9XKmCwUyB$_2svn#k+~Qd4EXYBO8iURki0{&3Mmj z%PaE115te$H@;)q9`<>vC()4oYG{YN{6V+NuZtB#(Lh&f@o|M>ocQYtFgd{HPKIE4a|C-xx=RF(R0G=D&A=f2vtoKvY-*FCp&DKMoi&jS?9^#Jd zJEIU5>!rK^Q|Ib<@ z>j{T^sfPHAk1DYpaqJ0-cdY(;uj2lFY6A_))o|j&R|cyR<$u2Oq3!f`U--Ol=sTCv z#U)1c(rWZt8CMMswL$}qh^3j;mh!EcvmEM9Gl03E_;UyyTja4V;>a3ZlOy=Z_}zCBO9c zADph63b1E=vgazV(U3|??~v<0UMBLO@VUbWYrQ0^k=3&Fa^D>|#5MUN^PQ`m6sLq( zs1-eWf6qdXEShYCX3>VCbX4=5OQk6k_3r)8#jc~bLqBX%)%Q4hSSWy8;Dgot^p*=| za&uzI)`lC(PsopIr0i%9Jd~wzj%p|=b>mPD)o#5|X3w$D_c-}=)7eIGZPSDGBInPg z%;vqWt0QlH@Zjsa+Gq(b`qyp_SFe!^@vUs+4W{!H-mAJChF5HA_wTyfRz#|F^W0#mBH{GDXzxK>e_@GW~nEO-N-;Jh$1n zB}&}2mhga+vq;&nkbH)w;ZvvrO%q$lcY_8@JyN^QNJpa4B8K$ayR=if{e8}o)jkSZ zPfV&?I;UX5YwF9@^IxA+m~i7_=5aCIk6XAX0$1@heM(P1FVq_F%oQ*3c_yEj6G=A| z4iXXBK{rjbo91GC6{hxe)oHu+Q)2VO*_!OvMR2m^=98Z@f`y1`s3LH3HtDZcs;jHN zAv%|CwA6Tf@!N?X$umj^Zy?SGlRKptmcSQX@W5(qCjwfu(&hFM7v(2uQT0N9nCv%-CdyXC{Z6PAMx!9e-%K>bB83vFG^n=TQMl(RWYpJ(N^mFisSws&<1-#FkPe zWF>an4t~so^TFK-B~H4nl43i>-#raiV?s8Kr*(C8y&SSDf#h1|42LZT^)Nmu3T2Kk zI`!Ur+Cd^EMcFY18aHcCg^4#5XnREogn1m+e46p8;!_}Vtuc!x8p=D%MZqp+g+47_ z9c!q}nyAZ`s9P_b;B4r$cWo>lyIcN6;PHo@xwz|9RRdcC8+TO}kiM@;b)0P~ zu5kU_^fPs{8fdmne;X!f=B&r=ueS%sTenY1*xNN!$Dn~v*}xvf1(L}|-gp9ZLbQ2iw1E0(`T*Yc5mCoKh!)*^VWMiyZCXIH^J^>Eof3i2(Jo? z8yQJCq9cra75bze$X3S}lMUl@Tz4`msjBJvg!J42-tlQISgeeGh2+s683{HAih zq-rj;k3V;>TYcyyICVAZAq#KtV14Y!g-kQkGrU%N39%%Q@tq~2QM?<`fuEvNX`UuQt@Lth~5*)d{`F)c%pcW9h`E{bXCtY^_cZ z#ch3@AR1CYTQOgdO5f{vp^hpwaJ8n1Y<=gA4?ACAYygNU2EC~(1yOE8?3q#W7!%4x;j(&YV895o1;*V;TeWMKX0X_-1 zeBNm$?Z=O}Ib>w8s2JbL=}B3SFG0-<;`{6MPyXEZ_?o^Vo90}BitL>M@^Cw*GAnMF zGdnbgf^{_85%nRJ#2@@PCodwkpNo1J{e=vrbX|0t3zUDNJ6T3vp0Lgv|1a;K5BZkNoileP-nwcg3H`YNq^V`9$_=~t5W z*pUioEN!j7fnRJ7U9KLmqEj{wY&y8tQCOARILsbR@{1|9kS|tyeEC3jB>EEbkn1*7 zDTldhb@odY(dZLGYs-!1aV7~(j&V(ncjeC;Xh@lwbs7n>PR}>8t*meK$mSj@>XO)< z{Q*tJ>)zH+G1W4i_vHPTuCDd=-rioK#4^L;4O(3m!PApY>8r+dCTu@7-B(3oj~99< z(hR;8|G4C6jI%HeT08!fMeucEhs(W$;8&UrB!VGAA*{H3^b)UaXnFX_ZyF6FU!Qs4 zKg#H1Kks+!gvsj0-6V0dpYIso?4Y&i78V^prE_B6dc;~_7i)}5nS-7Rw=rqfM*P(7 zh@6(A6j_utcr8I8`Xid}H{`DyH{5$9vhCJMy5#_F^rfsv`djpbg%fAuN73gf*GBe* zZJ@~sv>zAbWqSN5(2S27Rz9L!X6I#2CYuBInhh7Vm!hXeBo;nYuJwm9C@m;FBswv> zSlxUfa;0J8BIkHQ%UVH5vSzX3*?^x3Wum+fuv=V}BGf^3x{*OjsYBcidR==Of`vjQ zOC?c?ew!JZT6Qw2?mqfHR?gQikG&aWduwk!VSMtE=2$AbzPcHyZNyzg?E^uiI;P08 z)07r^>VIl{`K&pti$aGZzP`U3F|R#Mw$gX5pgxKss$+9Ps`*28RRH63?WKgo6s zSf6nF`g&^J&8S2{s~e-&KI)d){R6$Hx^>}r43XA~eq`00!u*Q*+G|7N4-}*H=O-4h zm&L{Ex6+T{c@qNG3%q*UYkVzETx5Hcz+HJ0BDe%(tJ8*{6yG8HTAi&K4AgLg0gBSx{7 z6?%i8GwmDex*^!9iM~|FwIX30=T(tV5lvjPFj1EzZ@5a;jsY?@>-Tbg!^i_2Yx{We zNx&0J(UH03qSM`aC%-@3cK^KgHN`kr24PM1i6^+HOcIr0cgCr4v2ByjQxZ2McjWfm z;LyP-Gmr2NU4HJ+I&oX_*+Gsvea=#q_SjY`e?~1nX6kF!J54CFc=gp)TTLI8ybM88 z%h7DPDm-me1V^J=4-QA}rK_QOSe@24OkjI=u6`xTC%yBD#Fp%NTDr<=laqU~Q|KG+ z&Fl1^3Jk9(7EL>4ubv3@zdAb`Ja|I6b$YqeZY^UDm-4aUjhKF5YN0kSnMzlL$LGf+ z=T6tjoZ0!-DYo)EFJ-f7zT;EN2PGbYA5b;ZjT+dm-r_6f{NR0%%KEK@;=@|aFVl}r z=^k0lr|n@{Y$D=SV_C&7_a}@yioo?o&X;&>baAS3l{ zYl1a06#=Ei&*pf(Ev#@SKJ25=8%vM-B6VMUx1VFMUx~uiBrM>mHU1(iYmma2YE13r zl9V3eE`9wMv_)0oe%aMpWR2eYVoJAp7=*a)Gmq(^!j)M*FcrCVAX_cnD&Vtt!R?%~ z!n(;EX8F;Nm&;f_-VM#R!yUR>#-~%Idd$99Zh0nBGMYs2%}d{hr&L&WM}|~v>CVIL zS0lZh+R7IyPJQlCDyw%cs7@T8-?M86O)5J&W6_~F1`1-5uN&TYIyao zcXVp>mb!<}iPLT@*t|*%)G3O0*xr!Z-ktRo-!eU2*ih!fo?egPoUrkAZZ%PNf zwB-m#VDFpeKMANXeX`OKnPYeC+PayPe!8&O?DObhkD&WMB)L=u=rjdr_$Wuow)dNc zms~3~mpFxI)(kr;kd;C@-?$5NkW_uB{3>-#Cp_0$=~Hjtdf)l;=Tmug$8M-rXwoWJ zWS3fW`4thzB*+YoTCdJbN$r7Ye%yiV1CPzccv@%kb6iq7``zkp_#eM|%=|uy-g);5wwm|E z&Ric8qMP5co-?}1$NQQ|^SkrV?Lf}B#{C@gGntF4OQq|?JveOi(iGMk%~jt;L9#rg zU!mD3pZl?2eD(+XwNc{0H%s2exLKL;bfc`(?{^Jl#MrOAXpd80c~SE5>}`*l*)t{n+2 z>#=VGw!UqO93YX27*VEJsOa~ZQ)bo<^VEgpcMtl8ImgkOh0c(w+6bu{9-o1(fyw;p8)+}|g?*jTuQyE007uX;8 zD;aEUW36f&EZ!5OIZ;HqmerSa>{2^RSb=~8*^U=19&#m=wrVxpRRs}uZ8=^K4-aRb zeDeHm({TL3cB_xx>n}N9JmmFY-FeRTo>)h|(zkNE@25t;TtIKO!`!{R<~c;touZZt z%DoIO%3Tz%pGnPJw*KlAQVbPgd(#u}WH#GIWJ1djL!(yK;y<}ZlX!0tHYu)a1DFqzs7PGT$d&W@B z_i~}1guQIXoR)1{_k6#V$?DX#Xn~K4Rnc8JPEFk^N@X8YnQ&uOWbW8S$JamF_g;`& z35jZJtKZ9sZZvZWi1(lIo$7W88p@b5@DIG1nqo>@BBq!^vo3C`T`DOOi)J6?v@7XB_o$ZT3H{ z2WEPReUw@yE5jg zKr$vCmW?s!+AVWvTgOqcZRbQqQ6nPzgGK(wmkGICdCI1LVujJb8Dl=;fo(Y!fU&wn zVr-|Q|0T&qKf+YwpJ6-BCt^J35-{5Rdcz!=mM#bsHzEc^pgTl}{?Y~Mg6IzGfNlm2 zs}0~`Lgy5=FEStF^GPD$04%UA7Mevk4j2!lR$(T&4Vd|ZR?PBY8+PLPX9At7>LZ*J z3QWTUFQ#IQhAtShvgs=dW_C#gnitU)M3jg~5dB9B=r6mT<4@qV!i^#V9^;&P?8>|E zzv8kk`S2??*aiZ;ruog-p}a=yU`8#bmsX9bC6r>ePdhNTSA*EmM{fxP@&H+YZc%UF zWsJZoA_8;WfrteW=oTrWKP8i$_My$p+SVJaPFD!L0t|q~>hU|wqkaS{8kocEo^@hJ z(4R^Gt3_cOVcQ_{6{eqFL%0XCu1oMf**B-9(Ohq{;*v|u{P6_`Xs zE=J8IV1{t&A<{s!ACWL39z;+N8btqc5juILWQ&y_CLi;dfWt8BHGz*Hd)MlI0`CHv zzhM<43k3Y2BTBI)nB=8A0>+*GcL_GYVi!WN3ua3njM>zaU?;E*_?6?H5cEbpv5Zh> z&D$>s&!FboX^H?IK%|366_Few2}IyRw<7`@NALXleOYWd>Pz4;=m_xoWaSs^Ozl_9 zx9J-OxV;+3FwozKx8E_DYlXksEBF_%VZz$!@-J(&4|V}{+7pzHNnN>*Ilbt{;MoFx zcd%{lv4rEm1K=0Je*|IEMWl^r6aPN6EsjVC(WV@Jw;rGqAXk@)UIMQ{S3Da=3Hxx) z=E+Bbegl4$TTco03b=rvJ|GK?q~`>k0KEVLeKN|fBM|65JYP4Zl3?dhU+`P7M*4pk zVFcc5B2qyF{Fg$6-pfM3&x_U^h`>)#A=<15+Wck7>X{+%7I+N20vUjgf-N2^dQUh8 z7^;!}fDVIQf(;zL_XY!91FWzHzq4rvu!i$+9mo@S05SlA`htCcogw^(5DLJrjtKoX zABRSF3APNphxTqKBCrQ`L`;alCZG<#F2Gmt4NyMVE8vFmpf2up!&p%31XkELi#1Oy z5_}HWD_jd$fXATAAO~opz&C>afSzpfSo&%K1_X8h_h{cOC$tCP+h}OpGqOFKPcVL?f(dIrq+9t#rXiZoEJ3JS74!j3Bfc^k(@cDp!lb~$yD?poe%ZhZL z#V(Z4?n2uOzJSmMqhnA9kO9~_w0T?}aRi?XeoEnHF~%sg4{UV@BCu69M4%_MhyWw- z8QKM?2M{wNzz_cQ*9EYHo^SFS>=kSm>HvBJwhX=qY#DgS?G;b(-_WLkjqbjXfK`po7a(Yt;hN35qRn3xzzzBiwhH9}ub}Kr z{||fzJ$nCRi6AH7Dd2^B03YDq#1FO&7!{Fjz&~ z{sKP0x``WY{<>@)gY&;GfCDf9Zs0ZWAABh25cnqGJG5P`$bO+-n?4fSBEShc12#*r z0~B|HE&P3(0CfQU2fl;;f$oDJhI<)yNy;N2V7DTO_z-RSng2&m&^cH(>+s7S`UUKu zL*VB?-+|w^KcSHigdGTY565CZP7-_{#B5-@fCubztJ{rVd=0c^NWWnp&TqzbAV!|F0=U6ng6{#J32`a-e9$ehVbB|}4d6QvZ2!7!>Ob%sFhZOL zJ{9Z^>ICf?tdl=a6LcT!5cmlMei7PH&=s%?Xjj3%0zq2=vW2>XZi0`6x-px36WZ+^ z=h0upep$dC!MB6|0saGa*an}o>5stYz;&Qszp)k2fAI601Udvf13dzJ20sKCK>tC< zK!?HSf-V6@IJRj6oBMDcVp6yU_yGPu>&{C8-=Y2>L$(u_Ht{1!1fBw~0UzK5g7y}C z=4KsWAN=ZX@B?m;0T5sY{||M7azS@Mhd}>(rk4rz0UHN=n*{y_Y+}!GGY=iEA{q94uLs>+-mDAMYg3ngW50kK_`T_GK#yYDfBcFY;s&7C zV?POTJ;Xhm*uVxh^`D^M(0(Bu-?Rg$3-~KoZ?<1h&rSRNN8ta*vA?eioZ8&~^)kQ> zb_;$QbRYZ;@Er6V+F+0a$Oz5>4>w~-h+%+_5I=xSK*!-)xDM(H@do$-kR8|+$OPhQ zuz9eX{nsA;9{+#E_D41VJJ>6f3$$qmV6&i0P_L4&bJ+00DnSl_3-FZ=%@c5eZNNRC z<6sL=7x0sS6Z)IrU!jf-<39;JfqFpyk;OLnFToGk0Vm)ES%ANRdVtOVX0ThZVelo; z)`I;(tOl|GJ^~)l4~QecZvruBTVv4wgjfjj60i+z0{AJA3Fs%pA%BFw|LPjR4!Aev zKK65!&{hFvh;;!E_zSR6unmZB05k9w>Hz)|bQ;N%okRbr;7-T7D8{>XX2G_|xw(0Pal01My+enA`weJqjS3tKb!NFU)oTF8SE3v1pS73 z5bz+o1N{I3-PzP3Si|{E8Ey7UKyN_b;XKp@Vv4^E@b5eba(}x$Vh8qKDcFGW!Dayu z=mjBf1??u%2k@DKf$11NA`is?CF`oUO6T?NR({Zqe&`2}J`kD93VnH~KLJ17hxqb4 z#r{_ggU)~t1^a~9lKo5!2Dtu6VFdgr)&c)Z@cW>HsNR3%-oNS^zz^jE@4+v!qPG6e z;D@#f`~l#HJQehH|0-;MBmIZ=4)li*ADxW)U&jxz z55)A~*Z&>-5K9AoLR<2`%zwZOaS`D6Kz+%72S4=Xq1}W27To_=>Bb*<4zxF*H_+#R z`0Y>QNB2V;4gMeEZHTS^NV$L2H7v+~K#ULi5AnsH#~(tlec(OhB*32kDr|q`IpFUB zGqhh2A8+@(^{4y~^kHC}0@^L;L;i2`AFxB&;Dah>74C z5MOb)L~i_%d;h9y_|GLRg5QI<2jWcV;|lmE{~-(z<3aliF(Bw4$WX}l&d6Vd?THa$C3ay+Wp$`N7Nr>IxdH?Lb|He5^x0@Rf zYtrn~A;ica1Bjh>`z8NWyOKwUHKAN+mtkMPFPU&X^j*lg1POgcXurA7#xDOi@cpZ2 zDn{hSf({YtAgxQtIm4J9v`G*Tu%VcS!|BQf^c~YktY$No0AQuC&famqsfAkcGIZ;opb^i9W>(02q`f$i@N%y{$P!uCg>yVK{+ zB4C7k8pJfvCPP0F>>7MK^c^8ag?=%UvFk5>6Ujs}D82cQmhs=dZeLh-D;tWzAfAMJ zKx_(m9mr8YT|hQ4_W^j$fv%Ge&&~XAWBPZVFXW#x$?tcUpzqKx0nAK?+z9@X^URG6 z>EP_zf9JXXf4v98rWr64nP5wZU|og7@t`#{R1|294x@uOT>szJL9ph*;RtJ#2_~#j zHuayaN&a@8XY;zjzg<7~+xvq4cE0Lw>!rV~F*FJQ&j)<}WKHt7^E|Nb$59g2YYa>O z-8IED;rSaxLCR1r;u~R&HUnWF3qr7AT}AZEdYa;wHTs3)f~a1+h*S{$I!}uc?fe^y z=$UI*_neBnkLF!{XV-K1$*gL&MzdEFqf;@%s3p{)ZJ1$KH1tM~hOr35-T!=nxm2u% zr`BMe1^7tt^^kwtB=Culr-Ym=oQGT#v%EnG83PN9mBY9K_?E<`X+1LFk08COF4zgh4e zF}wI3L%Uf_JvYElLM|8DSjbaBjtHI)Z2_#Iy@T8ZV1hmv_*@u!1wH^)7(3>a(egqC zXd;q9v=b4G8NnC}DWd;}CoCqXHz2PK<0jA!L7o|M1W-P-NpKGGvhZw(2MG0qI2sYe z@DMw|dB6r3w@Pb3`8tTy5CH}lLxgd37|Vij9?+3raX?NF`gAZp1q2uX3*^ZlHiWnY z`b?X00RBT=Vay+L{>*{|eM&~ru4S3v}I7e&O6Xd5D!>##YO z0LG07Jb*D;crJ{!!SkSB2)TGDAI7IZ*Fo0M@A!3G2<5Rr7Qicr7hv8O@CR}dl2&dS z=-E3EaUz0oHmEP?A=u~USpTLRaPVB)r@ze80lkB5&?}f*u{j?KbO7oM`w+W=tU>OO z%K=@1^MD8F%iKO}!`Z8|}jyY?5G?(1(SxA=U!kLw*zL z4&`t1AM_i15aet&>j~R1#s_7CF9JOUJfcUO_0h9o+!=fTj6;LY0pCFeAa}sCi3tb3 z1N0yIqd@QskOPdjK|TNHcnBN=eF1%i@iV{;_`n_^RyXjw4rN1mpld*oU;g_!Du2%t z9E@Rs9s%EhpnQ-kj4y4@gMgeB$OvQrdJc64od+KY=YaQ+69ycatzTh$9hUzo?@gHl z-#2A}?P5T$kPU^$(9Doqg0o0rG?T!u{}E(4)=% z2FMv~eX~yjvWI<$_hGyZ7JBug1pc$5+z{8vsMXl&k09qiyvRluEkn8BJ+XLtVjVK^_Cf{{N~m9KHC`cz7=KVL+BzH%oGi;-A_dNqh!v$Zr-j zR!0FCp^XB5{pRFcy_h*ko{Y8Q^2)g%2$_HJ9w)g0r(m!l-{|pn% z9ROQ^wgh6}-@6vhLEHpwK8$JoW#u39C+I%N0Phu-_8 z9qb9(H-WP^Cx5SezEe@tVE5pM*irp|@47#Ge2?d?9vIsPnZh`-xYw7yN~2*0b?BC2Z6UJw~L8*#2=aM!c{sO-QdI4bQDAE* zjWCVFDF>lg84(d8+~1K6+NS)!`^4xx39`5UOF<|#(XXJ4O|Shu@t}R6za8^IYjoWb zN?)v@)Wrs*Ezlx}%7U~6FQUyng$hK*|6n2V$-(|C{rzL~swOZX-HLHc^Z78QQ8tXJ zmkwda+t)GWl737it>ssOeJJbi@86sI0Rs|9sv{6z!YhpTRt>iAeh0=LRfduH=Ke}t zH!A+0`!~x!Sn~tZDIdeMUyfp0FGet%kJz6oUpTcH+mq6S3EpkQcHXYXWD7t4sq#(g zW-$Hg@7RILZvHVfbi3tA)b}aO_<>*|whe?$T zU`H<|{;Tr4PS+1&rynZzOH|Sd-E8&-Wlp}suukp zqiF~`Rnv~ zCFcPYkemcmat4PC14Di_sONaT@0@$@yZ67|f4#MCK}~hl{_S16s=Ig9uIiq7*ZqqZ zBTxSq_McJ=M%gX)>m%Ec19|Jf0|lGl!+QUT*A=cB{AY0@5P;v~DD?g@ahdApOAbf? z+MAcEF^*?2j7IWy7M423ta3UQCRXNJIu?H%$?0fn>zH4qHnz|*F*h=JdX@T-j=6<_ z$@80>tn8S-tJI=aMwV9QIyax|SXr8D8eOG+VD;3|l@Es{}pao38a|{g#ANuMTbB)mq z6NoUX%KjhM<_JbU*^Qm>)_*J|0@_%i~(aJA!eoN$Szd- zpHN3^474rv@$_{J^z`A9B>@43?N=bdu=md%%EE#xXYA}JU_amjeYk*=4oTG1Kk~DX zi5NO+Cr>X2DlIi;fHj6=qx{{`B5uo z2o(2%KU8+*7e6(~ybO0na)0r|JmhQa`NdBS^x<%6GWlc4A65x8V8rN&39kPzltRkk zKX7%$9Ki_xFh%gArltm#KnsE~B5*I^FoBDgC!{0zV%c zpHe@czj6>jtdDJJX{q1uY)FqmjLE{Frma2%HR33ycFSg7<{~;p1eXkzvE$b7#?qTm>&Eo2Uh3<6-D@XL;RoZCGbHY5U{;|-nJONKk-m92I%AC zjyYHcKLd&1&JJt=y0jF7{{s#PAnH)Ok2gg8Rt_7xgNFJ*{eAxIHi!>|+GE<_02Tfn z58;qf>g{Rkv-3x_hw`DOK7KYX4t{@jCm`^{zjn%SQ?ZZtSzBAg@23&s z(Xh>>Hn#eHe~};fLz0gV0pibY2C%*8KupCxvr2!J9|$`ijX7xyzvD6bpnphG`mLJ* zi4T+lV<|e2;kVNc^~b2=f@ue!CPp@PG&X7kv%_{SE>H5rKga|Cjzj z9JavA);93B{vm<#Ar^t~hW+rH9N0eyGy(xnf=%GTZ*mUtumxzejSu=aIRxtP4{e>l!~|Haf3_<8&J{V^zD3^lZNwooY; z4h?uI#@HX`2@dVEAGAt4Kl0En!;9P7r{c%WLjcV^6yVMCiw>>1pAW*;@271hfCk~v zn)>~~lVFVZ4m65>ewf-0?HI+tq=#a!nnV5Ele*LCg+kN-Zn{$OOKae0VG2C7 zl!5niE#PWr0Ro(Df%6MT;N|KJQr%3z!D}sWP~-w+t-OG;Qy{SS^a0ud@j%f(4LHVT z0QOjPyv@!6?{o9O>%2mcRZ<3O5<@`k+X(P6I~KIOj|1I>iQrRiGH5MM2JNLO z;8Xrv&{pvVer0bG=&MWxJ@B}uyb#2HM1XI#S)lP_HTYat07gC)gZ{=+FxXrUMjP|N zXiGWp$g2hJ<*gu~q8$X6G=Qk0T98;#4_;R{!1xKoHZ=g>58puIr+yIr@e7D*8UV4) zLm;lZ2jqNc0lA-=z?G`tMLhn7Lemvty(9YhYIK-}OO2p-u5DczGGeP|UV!}FRpi~^Y>DDY|= z1>7glz;AjB1k7%O@QHO017q0uE{KKaJ#=mx#Ln-4^2sIedTbM9jiEp)#J*nK1-ak1 zLBRwHR8DVz;@M4rm`8!a`E5|~9Su^K_dwSAKFCMygG$sMsIRL5eN7)gS9=Ti{<#rM zeQ5==-`c?BKrdJr{tQ+JyTRJf7qB(f1yECi;KSlJ__nwP>Q{F`+xjl(g7GtY4}3%K zgZY_B@O^0xY|o5>HRJ@?MNWgY#W`@W@*PZW?}NFWeSlh9hVz9ju)mLa;O}tmaG3t@ z2PhRwt@*EZ!xc6jfqN37rH4y2{|Qs=yL-VJ3Zz^TlAS=6aN_ zg^;AAsGvxC+CNs&Tl%h`prE0lK}LpANuNbXMnd$a2UTp!-^uT*E-fsqZ)}8U3`5w6 z_61&P>08|4)UlcWj;}3kZTuAu8Q4s;67NY$i*jeJHUAC1y1k{Pt?d(rrQxuO=hhD| z@kvXI-e}tUdwfybr?yXr3>cmUj@KII0u4}p^Ip^6$}eiegdYsB3Z_SToWcz<82sPK zuWkQ<|HaW5G@^Zm??1%1w`1i0Y6N@elO)N82GN^Pe)hljPhC$@dmDz~7l*Ni;bq~* z2C;v@*Frq3;3o%c#q}f&MgE2cF~O##zmwn9gMfGp%V8Ct8vRWTatok*A<6otztQIp z{2>F>D#Tg)G;d>LUO{tndB?x&-!*{fX&?BriZ;#!^}xJ_wt~EZ@_$DI0PzFA@P|r; zIv6qM!FJTY`x|XA_?8|FLl3427@Z;_HSY64d|TchGydP}=^bbp7=R2IJSKdKFn@Mc z^wX!dp1iW(alej#;0JnOz`)xYtaOym(X@PO`}$AvTcP|v@a;hqf72D@|u3h z{5|a*!szn{$K8uZj>-BFHMO-bz59DS)PHdB7rrO$EEb2B8)1E0&*I#l_%je~Z9U6>kH_dU2m^)zwxZ0**XgkxZd-fL%DcaPR{|q{=nsa0b~`6Kn-|#a z?L#a1Ex)((*D=In(3pU!q0Qx`yVENih+oQY`-S;E?Hg(x9Q;uMhNJD}#LJiCc!%=; z0pIcij;Ua9pvP+(2K@H+g{{(mz_$(#4gF#n7>J)(TU|fe-n00R_!jupfU>&X3Bs53Kx?K0oFE;20bluyZGWqVi>XZ>#!0(*IWlLqp%kh}CrG zSC)tW0sotPsL=56@D!!xmCo+Y=GMhuee!$S_lN$NDq#3*MoJgZ)%Ukx$k;cG`RaH~ z7#`|};oHLR(*FJU8wU7gxNo>`;h#kQg{iOa+dtO*7vO&{^TU(HtEGRe`6K5r}uQ1Cc&1pg6!B7&`g@GZ$ZA;1&RMJR*RNPcYDp$OQT@>P2S(!5q1$g$p4LFsx1C{0xpxHJ8?zhbXJxpw00@f{4zykV` zc5Mql>+?L&fzhxJ<5MmIGZ<|<4t2>let-gRL41@*(9 z{E7lj1Dn7O`j(C(o4{pg3%DHmms=pv^9Aq=3X;ZRCj~dl?}k7rWd%^ zegVPtUqJDPMo{{(38Xc2fz-y&Afu%p=_5apBF(Q>`yo7 z<9YO~0`Jdjz_)h|`1e7-Z)6#G!M^ht+yFuSYakT*co_dK0{VBM!y6!c1o~{yr;8t4 z2X69hO~6(?|F=_05{m*ZsTa+iHVb2z-?>~yqMYtzN0%J zUH`?gIa@UEndhf9Mwm&uoDp=o5xc?t*X_qo?;kFvef}z5^1V9~cFF z#F+VA5D)#r!m$OAKDGf;r%>SSC<^4j<7DIxNLtzjX%LgWumj#eTsF+VAKw7^)0?1Z zas!mXv8@weaf_zJ@96AALPR0x6r@Lf${z79w=Uc zvNrZXG0d049#G7Y|rO@NQntDqLv zRXdLcZHs8|X?+jWpbtRr<{s$WJ^+2tpB&gZ0E4>+U}tF>`j``kKIYQS9$129+iNS( z&)fv4-F>jVe*pF|H~#-192$=Q0ssGdR%3F?%gnR}f6wS_dRau`JSPn`jmf_P27;_y zI5=+H&=x(%$$C-BT=#cCkdwQ+r)OkTlmM@+=o4O6D&^nlRRMkp2~kN=n82$ediDk@ z{erdrpZozuZ<8<~Atov+Qd;-|FQnT(`;#74lyC@$Ns3B{G88=}z{E~ z3?MxZ14zXHK8ukhaNMwe_ZND4Uf$choI?qsf=_d!T`=#a{SgY9ARQtwfSfO4XVcO+ zZ2us_gQ}+V1`GhwbCNXfYNh4=l^;WIz#wvR-l`uHKN(f(V*M}tO+Ns6IoK!Ujxcxr zD?Rtn-NlF?xG#x&W8|;&>ZUhMP0bicUY^QBB0Rn^_rJ)m?#zYcLqJ2fssg^itV{Io z^;dVMH#av!2-M=+%;V!x3xDNDbml@j2GHE_b$*%z(j$N8hxDd)3<3h)DaxOTS@io$ z{fI6|{|U&yheI5*==~S|!OmQazjTNQe1vt>X)z$;ukzm<(jlT9*+-~kyy*8=dROit zeRO>=wArGvV%jz zzYhN<#mpZ52>;jj9e&PJey*P%s{7kK<++jqP}9%@Ub>nf+SUT}q=|!}vL`?{@gopU zX$H5`TY>nSb|9181?2O3fO0_}P%rrkbdu|VPFf?-&iDi@vuc22Rx2V04_m(jRXC=a)Q$nux^ZA#KM5Q@%>b=#I2Y+%1Ww&ZUi};M(U~7<0Dvz$vnsDUQGmyknALB8>EqPJfIV4{qKON#7L`VSIQUmx1V#7R(=) zmcAn*0_h?|^q4%cytMe8TaT{ciV!m#=9M2v-@U_e6{z(+$~=d84K+2jCr?>%l?4v-{DN;dg+ zi1fS)x+!0tF^+jk*Ak1(!tsKq_yqGk%G<&k)P%xVSd`Q^h;FaleF4NNKitFCbJzK3 zic9+^%fP&4*Ust2fI>oM@vry`7y5c?};r zxr~f##UGEz4@Ye2jX~G?| ztX*&yy3LP;{ebD#m6O*JlE%$6xhkd8PYt&psC~5^YcZGAQE!%We*95Yp-x55g#drd zD(QNiv}0wh${FF((Oepm;kzw33L!~Fb>i}2eQ0Nr@|nkD+iV6`Y{j#93eKe7_Hr1s zTbPn;J@o-u6I(Mt!REL%o&3EpENwT7{+K+t-sReSz)9UiM1rMHIU;7MxZ0ily5~s{ zhl-noyk)ufQQ9ym(?a3W3zgx<%Y1<}A5$c*%+lSKeCaE?Sh=yv8ZCz=zJ6q7vEi7y zv&D+llV-Vn{U+?wuEmswolHVERH;0<@`N)8UY~TvzcLF_u4bEd$tCN&iXdbS1T&X&dLqM!L>LPd2AvmlqIfU)O@D++$Fe!vm1kzWgDPuA$mfH? zDV66Z^||Das+`;G7Ep;9AtM;0b|l#aCEU%vY?Pg(@eP@rx6)4X#V3WHh^8O4u0@Vo zb-15M>{4;MGe?kmCxi5~bm`vrmdI#EuWs`%jw>ySXLe2D1#(|OMg;3~eLB(iNTY}s zAXu4Tbh69W;bNVYX%!YLZB3ga(XEuw6X6Z|=U#W8i1+$Lhuw%%g2NoE-{?T_`r@t2 zLMf@YB|T-HK1Xb?hP9SFcu#pleRmakW&0jR`n@wVxF0<>G~sJ7bA`XJnK)Kx;o;+r}wWzP}Sx<>Qi<=qq z#IF-YW95!CUa)md^i&idjw6s=IeR(dUUYKzsYax*p6h_B*fA6lljEIHUE&tHTlMmo zR&ZVOT&7>fTRs#0wA3>1KIV=Ii@QaZ)V^Q0YRG>hC941XCUTU#7x^tDF+hZ_K-Z($ z#ghb0(DC7TpDF%;a1hr`g%>g(T2<~fX4?A7`Es78trQIC|1g*B`hl0AgBMr*!8Nfo z@vgX_8fFzF6~U$9-k1_$LlO9gWgzRblUxMhhnZF@xW3fDx^$P|bS3UP7+CoGft8>ya`#!O!Juzi{D zcbzqcOjmwfI)C_O2{$}5@eY~GauMd*%BI|-H)#gD$Zql6*I&?X z3*@aHZ3*`Fv~X7^bO%x ziY4beI9*nsM3!{+PLN{5N>e!lPF(v@85^7q!qrm7%(JKO2d$iqrc4@-;*3rT#T~Oc z=}eC3!S_Bs#*>J%!W*BS_F;7+3xQSE6C90#CvAJ$4{?!dMUzE`@t8ICa3p2qO5kfc z;^Q$mm2I~eZpXGAqYdyC{+M({p-^==Oc>2m3oC?l@n`jKou^6);V|G4 z5tENgO5_qLH?;l0B+UdziQ1ljOKS{Sy?}2?iP|p8@UEjUY-PxO z4aypUh%*f%d+EvuHSX&HO!TwIJ(G;9NLZRhCe2#XZ(HBbO3t<0OkFnJ!@@NzrTNq& zE}Su|ZKQNuOF@ACWjfDuS5q8HL|{MFxNWWIEgllaG-sK5&0&6yvA!&XnXq8+Q7!Y{ zK0ib?CC#4J)kI-7SGy-c(cd6b;#Kb)a+kfNv{lJ1#oK4T<3zpmce-Eq#zyHp>OF3w zzdD(8jzMSNWrMO|>z3Kv&;G+lqg4SJC-Em5lPgHi6C!;*qlvZk-dtA{i8xerCP=$& zsZRR`_Yleoh^2Ala@VXl#SIgK7HV8&%!$iXx18k+X9%RNVM<=n{o$Nau?BQ)Q5-reCSKSnXv{+{4!)4&I%ZiWiR zH&&9(t?Ee`NggLvwc7}~u(0FW`DFAc?h;z^T#8<_Fh$K*0RWC|f|?@Lk5CayXwXGVu|I(E0sr9M#I z;uSk$dY=Bk>BR_cezE5poV}5ntdD=Z`^UW~SWSS{TetW7d)lw|=4b3aL zjYdYBjq-V!_7g?|A{_&?!vlH+h{m0zs+OGhHHqni!;$MI3-2s8SxMrmysAsZ@+dl~ zh*m0|RPHmy_gWA%Ivur@pzrF)()N8tpGh~_$BZ!ZmpWH@YudtA2YFo*fAR`T20L+$ zrf&7HALS8^8>2I3OJYk3`pSi;L{)P;1OvER8yPf5d=^ zFePeekFY;)WO6GJO>&lqo9T`J75V4GrR^>&+y`e=YM+2H^S#`<oL3GO(VYYLQrOO!Wthpg@uxv2Y;9M-2H>NS64pS*5xQV)8Y+3kl0f@d-O^7m#AJ;d zd%(|1NeL+2&=fZaq0>2kXMRDt)ZQs_Xo%H)>`pEvXAir!i-4wyOKWJL(5;dlF++bj z(tear_#Jza)xOxsG7IZOKN2-Qp|=ECa??d7!r-w}+_U4` z7oXeQdzXKjdaxt8yJLGI9Cvz-oiYz4jV6o*Oa1Vb6n*L#7GIM+h4wYEJD1cl zI`om_-+Cwp)R!M`2JV?0^r~;)-)!tTK=TM|@q$A!&|SOCy%#R`QM|cU#ERNw@v(7;PM}n%)t_<_VR?B$`5*&fBRyPTg}C zn{4Y+0)_aN1vYzJmg7rYc9wQ?)ORfq8{E#w&2Loga*KCm%E(8ZDc!uWgh(tNFRKnL z+-213($RZS*4Mz@!%XRPd?vXqojaGSoUpaL@csV0lA&~r1bt{w1^>>dU;_?`bHdm= z@4grwnH8tNDtDYhFFNU$$x#f=>8FUiMeVCDN-%Ek30A2E^4n~p_f?lHbPeNO7G|7% z$%WQVAy9!O=#hikgAe2flUV9#vY9edP4_Vgl6z)DgvpLB(N9Tb$j5N0`3Usxu@BZ! zeYEVijvlV6tH);}N*qdDbUIidIglJZW^AI#xOru5ewHlE;YfAnUK`<+Y2Mucoc(Xc zh5|b%>#Vzx!<)~drwcckON@yd%Tr7u?nis{rM`JedS`x7nqcDe#qH0L63fhK3=M{q zudckhLYCeW#1QauJXPw0)swL9DYLM9<8+#OHi?_8P976wyUls~q=@AfmxMe=mPs3g zc`P&4&{Gqe#5vAe^o%NL+G`h989zUxiXIlBR}Aj*P8}nWoip|*k#IrwSl-dI+kJoR z=IB?%8n??>q^eqt+@ido+iAD&3r-ZJNSP0I<_h-_wV62!vovvEOI&c56(19%Ydz@S zJ?7Pu^!l-sa7oDm#nJTI?d!42q%sy$8n(YUxYwLWu%jhY0KJE0&u+r-LXLVmC zGQAA(Rgee^nO|6V9i}TV-0|p+-1!njyDjN>+1JlA$dW~NUoT8+utS@|M)u-Ot|ct4 zlJ84B;=j8-i+eFQ>*TFTU-koG%ayCROhaNVI3E1TB^&Hx3xT^iZNcSM4ohn_Lb(XH zv_VANE$-31m_3Wd3%mvtXyZAmrze#@@;wF&S8%xA*%2T+j_diQ=ZF+NN|ob?ZS zG^jS``Xy3Mq-n89sJQ^3M2Le zFWUq^;m$cUd{E%S$rmn5d3&*rOBE)o8~kK=Ls5x4%F6=y{Z^(IWSxk03K*7XPAd)ZWCqec4(QT)yNv6BDF-3CeIz zUJ^mbKc{$<1Anr3BWpGOGiR*bvZ=%dx_sG~i z2M342GK<(1+s7A|s3_T^Jzib86w0oB{?2W)y7>5;l>K9o2jd;D!^Xpxm<9J|W%_ob z8dBwS09%RwH45qa)#aG%fopXOx$G))b~U0bB$kYujDGU)sa&i&0RsbK%A@wG0=l+5 zr*=`QEW)=RIF|c!7JXfe9x`${dRKG*Oy~$-|5Iy`sV6Qy21F_oTQ?u~Uw-wpjz{ zG!2`CT3pCfeOKIpPJpicmv=lu?g?@!gYc`uyWjdX8Pg|zI+HnQ}2P-W$fnD&75C!mm-Rhcq|jlQ z53NK8;N0T5E&geEkvJEb@4~Lh7tiPhbz^+^LU5;r^g(kjkPAnV-j=-;mr5rt5u@98 zD<+Ufz~Xu6bDK~4I_`$t6|Wk}>Ub_o%g2mz-`Df4Vb6Co6p1h&$rq*qg%zL1W=F}3 z5Hx0)1(y8C4je>uYNn&r!#?hi>!-y;$D&5LPq5VtSM@)=bZXNa{|T2=&tzUh9|2YX za&(6^_ZZdQERKii0~HH)Lc$MGE0)c*wlT~=_MI`~o3MgY%n_cgv1g*i*&g-{21$fV zd-fKcOzAprh(vlc`EZKAoTwyx@ST-x*YmUnQ}O&cp3OQkN#2mFo%kBWz8oVOU43~w zz-R`=ErgFo8O@WwT{+Tlm*LZ+9gfiK66Eo_iD#rMpVsA1-({$EQRwqdCo94WNM;EC zQl1@vF;KQ1f=$Z1eq_Ox^zl$ciYUj3hbpmcJ!TLU+R@yUh`cdF=ydq zB-_YjH_5)qBSl5qv7Y%-~3{{B+4 zz4P2AgQI=^$a~T3$1`rr-VULQKBD1@7(gzg@~VTm$i~Ce*lI}x9EFzp438j`XTE-w zJ98zYl6zFs*hz8#(KVt*Nm>7vU5QFJTV3tC@`zLq-mbmQvkxjWG1x3}ef9P!j{^A4 z60e+_o$s6^Ues3t@7b;lp*iAH$5*Xl8mda%3moWUVc)N-U3mRKq1PgK8jcM3r{= z$>7ncOo@k|MY)xaa z>}cHM%N?uzT%(Gj-*)kCgqCS&FFQrnCW*$afBi=J9w9UpPvz*BxL_*3CzI>_tG(}Y<&J&-k^>Ts$dxUn;MnvCwaelRTWS@`9 z#nPS5Ys|Ecj6_{mr&mj-^Yy@r*^?`qCqFAAHnJtuYe{$g!s?~*m{?>fn%hRU-?O}* zn0zeHbGnZkzA>>~Y>m!7v3cCtaH3CvbxjFzF^?fH+T*#`>93Os&UqicXLf8qOH{4U zaz>AF!K)I>rce4F_ck7ufMpsm{9T2%FfMn{2d0inoR+Ew+_qBnJVs)33n>B zX$_kf-Nbq~j&!(uKR@L5VPo1SJe*Zzbm~lv<|y0S)R{b1MA%M*{O~#bi=8YCF-Stv z2!}ds$J!MoMAfV7%M>fjI;V=5`c|V2SNoNB2^Q3Q_%c(U7>gdm&4reaxaxTyOKJZ2 zYD%Dq`O5e?=%hqRpKQlpqZ9X?DU-^$lu**Rz#qxuGA3^S!TVlF5Jg3W)D^Ar3yBOw zTcbOXUq&uWIA8^;35>e=al|_ZTFmr)`9_(4ZN7U>J3v_CfofQI4!Q0dtTXf(g*2VA z($*j3^j#70;R|h^H%MH}+6MPZ{84R>pN*Cr|Nj03mE@D}b5sr65v1X8eE~jU6dZIS zTE4RlAK%J>mNj8W!_ew7MLR`(ssv3MYvYcdA=VvAN&@T6#ZkMZwaE-2@0mK<-0=aE zN@+^5`Qfsbp#huaDv%?8gZm26UFJ9;MD13Ap;7kc97;f-(YUYwY60tF(V%+s%NFcd zQ1JXU6T6W#xK2|vZBDVwQgtl6XyYhtH|J*C`YXe`*a$+oSn}%n>+0&;6{MATo++*f z!A)UKH+8mK7lZ>kd4`W7Q?SHC-X+p)xl)UTd@|xOiKDjAOFCgD7-G`A-`*&&HmFx- zYZmLDbG&*Lwe&8MA%w2>BylW~!;r#>HBNnE_bb;8?(Ow*tZHO2+PFwIhkn^ArBQ?N z3S-7+T%K&dMW2i7kJ5tpw~0on7RQ8WkROP&zqJnZt!F;eAVvo^Y^T#_b9r&i@{XFs zeEC||$7FKh2$Aw&e%t2LV^z~I;Ty9cZ(muL z544!*yHI`bo#X-2<#1NLj+*EkuJ-47`R|7_Mv$Wp#C30w$cX$131hpr9RVlgR8f)b z@0BY1qVFi9yw?Z8JvHIRO|zT$W8Y%$STB>K*n|=)$u-^(oVlDhKb>SzV>?(FqiWc( zsIXSxcY60*sr6a(fEoU5%)sco#VVEkyBd4f5>;Y!C{*OzKg-K?EgTP$nApZrX(Ynm zbF7t-rnzi(YNCvFV&&|}=897yl@l5ZzsIL5sj;kJz;UUUd)A6Sj<=-AJ2E$^D0#$U z_~vBna7|L| z-928XV@bC>i*gZKDmZJ(2=>b}_1w)}M|WeMzTwZj`teDeLh%v)FqGkxF;>a*u%1#y zA;p4HiDsipmpJNk@5-v{ZO@;y#I}CEXsYXQyko7CNp&HkXKr-MdAK-n<>T63WzEQ^e|2^6Ch7s^E< zO&pOWb2e!!Zxx&$GrYLbmw~(UY6Ur}{>)XZX?*j@iL({%h81L;8>)OYT>6WW$@0t8#|`*m0Ql}2<|73)Ka%PuAa2b{}zBdpRcUDFydEHc-+M&-pw=(JtM zTCzz`aEZrapD1zfP2!}>euYb9-tMBJ>4i4h`vM;eIt1@Bo#uW%sLTFXljpqo*f`E@ zGYRhHxy?rpB*@mc>BMh0c0`~O?Dm=h0&BLdkZCAomZ{r1E1_foyQs^S*a!Qz4IBh#sFonhyN&1e}dkBQggHw8Dl*{+=>dcY)E zFyTNsfB(zyw+5@5FQ`R$0>;MJ!ZsZrnJij|A?|i5WJ>ZXEAPIbzIy>*!_P1dTRL8r z+tcdigOkE%OJv+o6oeP>c9r>bUAJnu>!J*1)6aLG*N$1(MG{KCtynJ?sph#`Je_cY zSRLJ+I37KdFqU{w;L@H(rKYR35Li&MM!&Td6mTe_}K`j<*&)(tTS0aennS9dCr-^TreQc>p9YW%Cb%X>jSgG?*+k3ph#no$17|Yx3MM#le87#Gqjpr9? z5e@1NP@ZXSm7Xuajxf((C2Ym}9D!`( z@y^RoFWgk^K8ZTQ@B1Ob(vOoOJ295yO6_(*W^w49n1#97aVqJ)Jp7(AGIrH6?qDqD z4_LAx=Orz5Y7!W6@$+U@KWULrUt|+NhmHC6y4deg^Y_I(ZxoY=XC}Ss6-8)Afkb|N zuiv2B{B$y`1dsU}?ixOL=%xzT516HKhIVgwoGeUGIX5EJ|LUG!(+Do2X~#Mu|FdeW z8}pSr(Lr-*{W_lk4PyH6YAl-EWuBNe<5A=h3PeBYUG)d6!81Re>@9N z-V*LcYku8X_d;tJPEg(^zUlNleE@RYmUT!?sDRz$&Ey-`f%fgA1+4{on%QRxKVuyW zm4Ajk+5a)yq|}X>wq1(r%Qq~p(f;*&WVdf@HsF7ud0ThL z3e_zKXOf?B*;%6=mCccGUU01M*Qagwl~p!m{!)Fm=gOg?;n0Qy{lez@y2qjh@YW#-xa-uZ2fZ@Jqp*(W(P?q8*FO5bGan8nb4Qi znRM+~k`kZ5!=smO7pDY)k(k{z?*Pa9T-6^K{ z6*yQ|5chcF#YFrAvmCdI7wU{6TyLVj&jr`ACE*pPymxMiZ&vcyIpR{=*ZZzF`B{vO ze+cqfl+^9&&n34E1G`Lx&t`-d?_b@DUSqXbXFL`5DmU!*oDrP{&E;IAF8}_~Sgmr@--m^U$x{&W?Bp6syRO>bOgKL2b<4oD^s@62G>T+VO*t{z zz=9?_&#*Md4S|Qvk2X%vZ|?_Tsb;>*+~+nblC07k@-+6kC)vJjmlfPUjkvbcmVQR^ z#dFs%QY_0I!`rekLNVjYvFTq=Dyi#jp1+ANsT_6nF_!kobBhgUQ6ehpTP5$dIb7AL zaF*}BK=~W$I`@4(ZrJ>-AjIuHqj=1{5KghOfpz@&XuXR>4Q!QrZ?)~xIQjIP9`cd; zMSC(P_lq!j0)YBUFnkeQ5>(J0vX=|}p3TqUt5fDht$iJ5f=oKQjGMnH-heE zwW=KByE%UQlDt;yi*S_Qlo7ES)1tuy2OEo`?YrK473$9T8UFQoJ3Jso-wfH7S)BjY38y^`BlQ&t@xXj>Tmv zVK}9EYJx|GcLTxABYG-BIp*5Hu6%EcU?l2z9eXyF-=)GZvM_l{0?Rlb)Q1~}$+>h! z+4uLQUq0$7k4Fvcph)nm?Y=f__wq=a*kFNB)Pm-ByKoM!Sw{!9%anKAAJWUl6*y^b zXLUD4E}TosSC7x3dHk+gA%;_3?lEH%r^nO$2Qdtn47@I|3>wr z>oaO^^Vby4NcwOqtGCQ6G5UWFp$lL4zS+$w0^F8@rycNTKg6)yI1+WYDT0){7NLOU z7gEoMm4&Y$w857-s!z7pc*(8i9K+GfZ0 z5iP|u;(g`l0i_Wl9J?JgiB8hF^4d$ICX35K61@*_C3N<-^DRjwQkxS?Uhs&U zQr-(a1x9QLQVP>@za*CBR#h}m24CJLXUr(QYP&G~cv;kn>w@Z+^GNrhY@<|VZfO#n zYL@s=t-YtaPS6G#QgKCuW9R`c+|g^$Ax|m0zVf)w8Ur)RzyEHbGGa&(Q%OK%j;CX>3lMmaCfz`cDvz8JeGj;ln)!|RKB+3Il_&u$P?x8WVrZm+AX{5qNR z73~J^RX978#_~s&eodyfJO9Wt%g{<+0O#gT7QQlOp^3$H9Os?5v5|1ST&Ep>C$aBa zHGN4TMfMmn?LC3{*V!g&hWXCdk4xTM3P!cXs_0c|s(rhDFQpJwU}#Z`c+kiFA!=cd9vz#l-Z4-b+{iY7enYQwyknE#11I;64sV{2 zwBI=w-kPQhPIeS(&4ZI2ck!8Wnzyif*e{vJ8J%O#S$-V3w^#buDN~=7z{2aGl2zt- z!>Vj=IUAe-9~E^Q_z2RmI8~#VG%w=q)3ll?jgY2y_nDO3(-kXM>?3!5iR-r=bvvh_+<9qMq8dN~rPAI!B&r$f)-!spNtydW* zncC`Pvx(^5RdQ3H{mVax&0rRkJ8|_jA8O`vwwX5SI%T>iu?(dYIJdlr4ZjLKGl>fe zQ_*e*7nMh_oppH7q(fJvaU@lR5W`e{)fmxiZZ zjph^JrdTpVwDftV)BU@fvN`I;KBdKs$h5eytA&IbLQQP?H#3+YsE&6i(-q<#RFbqc z>=iTPWm}JZs=(8GBrI6O zgP@nC=IUW@ujCDIcW+n|s5AAIddQoX^sQv1VY_Wc-YHq~^g9N)1ME7Ll4En^{FsXW zi|u+cJtty(XO`Wn_ti`-+5Q_Yo+!QOwze$7{rS6$(F?e#oFXTJ=<+GsW8Y?9U`x{+ zr^q^J-8dQ5M%EeS?3&H3alRqQ8`Wkw4ogxgWidY=XTeW4{S$;ZeMy>N9Bp~qws9VDsWynpe=A-2X!I_HRjR#xqke6wz(#BH=@JTO^uf|ZpI5p9YY%Sl$;~f{lta7fLzkqAPc+GYwbR{pU0VM zU|CHWM)R?Bz6u>(>=%Sc*H^pfu*79%%ZkWk5pZSOWI;)3RnGJO@-23?u)g263H1y zqtmc08!~N(n|}F2i;?{{vr61A9N8HG| z{r> zl=rxlMabzj0gUSvYp=Lc3=R|)1~%r0SJStg&t?58c$+1uhd0xy0l&fe#q2#>Tfb)V zFM#!DWyp{6VZN>_xIGQCF#uBX;?obYu{tDC@YefR81L;9PGdTQA)~boHrBWJGZ)XZ zySK-8-@L@fH}2wlnUW|$t!GP$hfz$w-z5wqy1gD@oRB7}Tu-n;0_85jZIiuh?{%pO z7A2?D1gJBZ5e|#RU%zk!N8gcHzdUWKphn?sVt|PLvH57CH!#JilTp^W;UavZb8}t;uB*18So2fS?2pN(9KgcEx<2BnFXk7lV(~rlfRNxJNThCMOk#R zg*!aKO25aqUwfDT@3;O5H$M6Z2gP$QKFk9bRyemkWOd*X1cK?EZ{Ut!;UoV!68{1( zJ^MIsU%JAryZg9~C$!LESHWhoh#7yr$zQQk8sKj$*X(`+(sNDzd8}`yTR(;>_-DW`Om(zo zHw;LnB=7@1zPZEK|KESX^~)cUNX_FX{RjV$4Zg~q z=pvWyKE>J1Rg}`)yt|7dM7F&+5GN^~>wth>zlV}FP#4eBqNJVL?vDVvWd^zRA8+SRk zy@n&;#_e5%=ODpt?h?I2R`H zW`krh#ZYGfYGx$W`zGsG|7$5&or&_lxr}ScyZmX%`xvZWrgIOhUr%3C4E4>r{*;q% z<`G3@`(25E(Qw3IIAAd7IQsM@kY)yeA#`V3-51`C4+t)U1m3fbTDJLq6cLJKYud!*#Ub+#y66$!YUr(i$ zqBeQD&cgL$TZxXq`sK~jVttHzv%;lPWrKg5Y@05vbiSXTAkhIGzele(WPN>;t&L5B zZh-ImNGWk#k2sEr!iZERXr=k|qvv?#dtc{D_eHigR=K^ikCckQaZyqd$1%Pi5Qgb& zWMO?I&mrK~*5=<*3oJ?&yE9O0+pS>S!(Qy1dGtqO{hGpQfN~z=nqiHx_eWxVBmK(7 z8pzA2Hlt@SzcU%bKce(LVkIDW9lY<91d+~8r zM;&^-0k3`QpRu~O$peqQfbRz+Nkp&PVI%quJ9`h&8?5A3gTnP3(26vT>2x}TQChAs zpj+!!7mIV4Tp=v+zc4way#ec>%g^Vm4BTq+ABpvA=l8_==7*S1Yb~98nrgPXd2G#Z zrbwEsU#SfD%KF7UAq0*P_Gc8H=h8w{jm zrUX>IXP_#FPSak>!esGIz{a)!hrR5>O#b7se$|m=Vg1H=U36KIduDxvrR+7ZH|l#h z_;t-H0i6x55#Tu47F}mMH+e646rnZ!(Hfm@pCk^6;)tLZu)W%4*bi`Bhd4?ZPa@C< zY&~?53lBWPWYlGU=Q=k({5F$MKaLtc$N2|d;Pso=aD+f=P0;Nl(-f&Bo*NJ+**pX( z^R2@DY$T!W+16|{8vX)HsHL2ooZ_OOEsS2dVgRZ#qp!yL)&J~i9?JSO%LmLpz^2K6 zJk~GnFM{>!;IH0u1h|fa?>juS74znM2l(9{j^pw0bIi9 zX}0!YJ9ryIrK-=NtoC6FdMWoKr_c>pR|H^t;Tnuxy-fg}HtScz7dcz=)<*bJjIr)o z)yjSntZzP>T6yv~B44DV6L>^P#KVItT#-+rm166`2id)TgPrRia_xr8A0k6%GKRHKK$@9QYt*(L*NtL-l5y=aO36;9O2-&E<(WG{*)w&(I|o-APl9k zrI`I)*B+vATzxL}r@NGs6=$)@+kj?a{>oc6fPYVpKGRUQfWKsvIg?Q;tZxCoHqT9v z<`aT6IrwMkG#q^mWv6F3R;(uz{AyOdhBBJPaU6l~3Htqjag?&%c^|d=F2ZqeU5}@J z@+a6h{|G<4B>3t#VvoQy;Ol?%0 zZ9s{cMscX?ps53`)#R@NYX-%lST@!z*u6L|lC83S!;4)h<1DP5^-Wb)H~DMeH|pgG z2t1ELFJOJGPpTD9uKs{z{|c^f@H-uz|NKw!*mHl3OCQ1S{{9X(ZcW(T4LO)Zq)Cbw z3iH?56#>2*C3N!$Clt^oWv_kFMclL0HXE}Rj zonAK}@O=`Y+1}n_b!`nH6d%3y!%CU5iC>2;3~DN5^Su5pmvWMF3VQ=qUwEZ^&m8e* z1%5q#?Oe~`)3hGU%k!7_Hq*)SwvAka8PnGpcowJ$eDl0nh9>KqN9~S2`y7hdx#MI@ zb&ZCdY#l(UxO#1mC%o_Q(Vdvyg%=3|hryu7_PIa9WN(+Z-gtw5@s)S!c04?HOuzpD z=O286N1u3sgDBhoZ+8M0&TsO$=O5<}UVE2r$7gpsA?S4J1YNX-(XfN#IykOqSrNFU z{N^*NJd&jbSd^T?&OkHfw6cC%TVK>)dh-L)mFqeOZhb+Hc{>voDVRIgm}RTf#PT~! zV;1}*SYNl^Yjvoa_T5|P+OY{eQWFoor z{yY4sXEq1|2hVkIY}GJ1i7a zp@fV<3-uwab6CGxrt*S4UW4^#=`>ltR+&Rs-~3-dwq&>K(CvDx(L28{2|OR)ci7q((G3D_?Hur(?_Xkf9OAhS z-}&0t86QlDFMhVeaHYe_AfVIna;0(v);HcubD4mp5?GX+(qteLuvK7a zYRaJ+ady_q`bPK$c+6plsuDz3{+nl^%wzp}IW_jS?L5|>mw!D@kw-lZTiEQlu)uxS zg^p%*)FDX*gi*rPn{R--%EJ$wM=AK|gSYwqtKVT``z+gM&#`^x9I+6@Nw&(5<2u~F zc8wo>aEY5&uM$NeuH)c&G1sqtz~?@#+1Ti@xzT53*dg#;oXSYh79f|39c&{8m+)Vl zobH-{HpZ&nXr4D%pXP_&V0{aKwJ=zp=0|xb>(9>ZtZ&;1XCCX%w+QZs_3LQ~1PF!i zx%7JhYpaSRk)+8E*Dn7SACEiWuOi$YoBcK7-OGIQ&2Q1|53=GpU8K@@u1A{2xQ>Gm znr@IVp5CJ8-Q?f?vzy$Vj5&K|n5`<*%bE`DdjXhLYI*;~H?-6M3zJjt2CM+k>d>kJ zy~1&2cw@M(w#79qj^a$!Fg1_$D>o|TJak6kp#ZPfsUEMIpIHwx+)=?_+!y)!3!djN z==-E=J(5&r3w++(XFT3P$IvApp1ACfSGj)kE`y$r>jem}LnjEBj`xYvdnKzSI%E`&8tO{HmRaYETLsZVR zHWb7>HZ;J4h7p$SiffC-xKTG?%B#?&*QkP-;``U0arM5IxddW#rItXeV^%i zkM-3qE5i=gZtSsp_g1!Ruu`n7pQSTcV|Rbdv(G(;<9gh>bqC+~c;uPCz>}Z(CAwVW z*5&^b*Ku%M$3FeHmGzDK3tQcmvM5=26QDU)y&e2zuYr|eE$5Yw|2V8)FH5^(usizd zWjJnIzh0hsO3q|`jAw8()~}Qyza@mmaYWV}==pR4m%$)2+XWEE348l{gmDpGlz#y7 z)-87Z0N?irf)2j#^WyVQa`iox?+R>N?)wndZ``xI+ohbiEWQaam-S~r*O;4w(qy@N zW_=^vp{x(()LmPdk7V-Kuh+}}39x=8FO5{1G|6@fO48ZVU5*fVzDqao>26#=DVHRP zN#d9!O%TFmI+-$MnkfWF;5rVj=ke^PpCpVDk~CWcq+Zl^@Xt}|S}&Ub3zk!80+yXek1Q%8nrZ)(j;+8 z7$tO9KZiWH#dLC$IJ`?3B}^v?p6jr(zKzzJ*T4DOq-l)jxjgplPv_Ho(|o}XNt&j_ zQH+#|FiJ^MV?z*K2mZWgP#jx&4VFq^VRDL2K&Wf}0!F1{aIVR32f^%HJ1*-t@1F$g zSN^|W*0-i{FRVWkr4?}^IXH-k`sZ1{_(e859lG5fe&BNJ+PmDo{B3^!wIAYn0hfO8 zHJ*9yv;6X}{71a^-Ur;;2^kKDfX+7|%`Ax^2#`7W3(N0#CcjxH<2f(Ezff7I51<64 z#e1&BybrmqJ?63g?7SMLIJEcA*YiC&)^A>~7OO3flVJV49Bp}#TL6jVU>tGltyk%- zMRWomKM3dq0sTRr;l-b31KlL-ez)yYg=NXL7^5jz;e*3@quX*s1#~H1z z)9d!>^m=r=U4l-4AGrD0|GHIoh~;A*mOI6_OuSmkiOOOp1C=k_fT}iMES7hxD<4Aj z1DMD9bylYl&-x*jNwg`Xdu9EW{O07*uFQ_h`t|&(@uif6amux8AK~ux@qG`^_vr)y zp63$;KC2J?G+%sv9pCr4vmbK(&f7fwei^)lVU2rQXFK>JTtG9OPLT)Wd=?>io`>goT)lb?&-3yg0C@C~2e@!< z#Ku~WUf0h({ksIgm@98x=Ir*6Anar$I7rn zuj`R-J#Z}6pPl4eiK8e6Z!cwWvTzHa)eBsn)|tEsgyT8-s&VW0k2-;89_!DN{G-GA zg$N;V9EVQek=(q>&4UET?b7X!=yV74`#tmuTzUUBRyWSz`a={hNgUxg4#Q!GwY45w z>wUT%uT0l<~}#?bAh4p^9+%1FSO91gtMu?c*R2)4smzy3AZ z70ThPKd(HCXZ>oj^FY>2pja@p*YoK6m)O7l2Dk6V#EFO3-6ZI)(dmu2{^1Wedv=4f zXSP{6_Zh@+6W7c333P=Z@E!VnKiewY5#`__R}|*|QNV9eTsrq5XtUX`r?w}tl>3(j zuLyKhR$Bz?>q^*$C2}IHUnX8FL;boXk4pJZkoD)r&jwosfyc_A!`ZDNzUMF;hU^`L z>>pfV_vU*Ab|I#?5^$Uc87>37tp( zGUso7pARnmkZaeTX61o@gN?^8;>Pc=AAX1%?i2V4fe*c|hwocv0XB-%QvUK>01~t_ zSD7v4{$-&SKz5J=wK^`C<^r3#bT(-e*7@~w0Z?OAEBKqNe6p-RCynyn{jh#L-qBdU zZvVKB$XMGEbOM(o$u1JWcxxMx^BMh3O%M1oS!q2+{8`Yf8`k55*QZyb?DwIqWOIe7Vjt`)wJ#*i4@mzsY9VXL+l|jJOtJiQn z7n!EGu7~Fb2tuUR+_-UrAh?@#7rGvPFyi4C|9#&3#+PxuY*!-J+RbY_w%yZcr4T|D z+=r}zj9)BlKIE6;1-y%*NEu(=&{3t;_L@atN#ZLDugb9PhL&LJBK zC{sxorl7lo(G;mtv{r<1N|Gp|SP~2a(lo{MI!Gm%OeUZe}l}8;NR^N{i<(&j~nZ-(hPeOEKhBwgO%KEiCM>Y9doSEhSmGYk+>sOydHJs9lFihDyh)gHZ z2I0X~i0+`3#B+T{TU)rU!;e0An>0-s4o7IGmklCHXA^;%75fNe3Ls8YF{r3li!6-aIctug54rziFQ+pOpz=ZFOfQNLy=nfHhxg3-&2;ad z^=tPIHTjRr`gt1n#rkz6*sP066;YhByEoB(4#qLBzy2CQ;1hH@bbOz|U_gJcLjU}i z&_DP`Os5H-{oI%M{Fi>7$DVkRo!i&=?mzg4Jo?1b^amsQgUnegrKZ#Al%>$t1ybwB zX1NORyC6KY;~{`Mx5xOMpor*F1%EwJ6X3RE+r1xqIi*EGtJ6AlWl{jMaJn9^c5Z#){mZl{QE3?<1%iI(!`PR#vg-m5;1zi95O6K5mU3}li_p^yWLC|4!^E{7koMmle zi*P#Swbx$d@y8zGdtd)YT)X@z>zn6US>68s+k5k9*{=G&^RxFEYrOODX1%9*LWsd& zkn{lA20Zj~y1fFiY_~}_mXl6m#~5b?;kB}|EV?_`j=kI+8!&;kjSbzzB*u`$#v>Rp z7=aK7q$lak)17bKn$EcUk8`T(RMk0k>yCQTtM6J>b%uTR-sjZ${=UCGGd?*-dEx+u zVaBTg31s(N;OWn!{gWiW1gRl}&c=pAt>#k77Xf9^{jO#`j4bl^8i};)u1oCgd;rl_ zLVQ)<3zzApoNEXgnOAFIYw2 zu&SRPhX6E9U>F+pr6<^Ma%e^lyD)}j7b)6B%43q}zWsUf#c?L4ZUCidG^!wAVl2mj zxe{X~8$%b-ia|nPSsI1BNzT@hGUMJ(&tLOEX}~lrS>)dh)lZMV zKTjEP^j+VZc1j%aAtAspG>QcifB6aOS8G&iAzomhq>a#Qq%f(jUf{+PCy-VRQMi%W z*?COE#I|$_d4q{Di(Jk?sc4pAO^T>Pkr7Q4I`Ema)L&{K4O|DFKea%;wnni4g<^q1 zv4pL!69xvwa+#?yGe1eKG)v-!==9$5Zy(@6BM+?yBnd z#h*;0b#9xgpPG-v{y^35)%~rhekX}&EP!R{luH&($76cd#M*FZI!&6*4Qh3ljhe^n zAN(0k96!v$lfTQ_+A8b*D-j~Z4}z$Bu8Icz=$b&&S{;K(EC-&Z`Yl$8sKQS~RBnObgy2 zbbn1bBnjWTj&`W57d?geUBUNR^;44R%IB`Beo7pJRKFdhb54^I%aoK$7E%bxMH9yf za9p2y!)0ZyLA~a4(;cs&JT`_N{3xaMMb4djoQ12mpo|kpJ%{5ugrSS31(-%Ozkq3K zpn;aw2+%qtAnNU>1CnQ-UczmzGCN~qStf--j(ow!wrzr1h@Cf>oSZI~3&sK9Tq3G0 zg11u7B61e_2N6GcHyL;L;>7+m1NJ>G)qlRr-a&PoTVdltuq*?os|~XTD^TFwW>$0y3YKpMJ{hqDB9Szg<VcvjQycNT=nJ8De`0d|9jzvX+R%4**Nn1cv z2Ou>Xbr&H5>|BmwDMv16wdWI5K?SK#pn`QK=f*j4)6EYQ@_+wfqI!T93Dbzb8DTdI zpLK3n58*|H{i_4$B}AVSuwB*f9KW_I`ZA18U!F4J=u5XZ?cr6wds7iAh3|!UzE2RZ z;uD4n-w*MF5M9@B>JH6jlQ4{0-ZWi9*L2n^6*Nu5&q|zcqi`qm&h0L96WO14exo^JKp_Y{`!57 zusLBjBYM_(=qGp@**EhLUNqR(uE6aRiL?ExPDBt99p81;&p5X;)sN%Yk?Id1?$D|~ zi2TuZ5QcbOK)vCS%ioAoTcg>i;JI~bjRtF#CVAapZf+LGaR`;fbzQ0(8w9?Ka3f;@ z(ez?cN_1VL(Wp_YySScB5QZpZPc~XSiMS$!!1F>hO<)>Y7x_^TxQj@C70o_I;GSoC zzDO9TfA-bSJd%I*%;N9FfveVP#{{wO*GiwWLyQG$Ti znChoxH<`~($v>>>r^GQx_1i%*3|`MYhha$5iDv(qzw;r+m5=W%k|Y%t{dP7-AjXIdP4EsfdYlp zL_CdHXOfsOXy9!;g;9PPhV=@(%Hzx*Do`BD{o_I*_m98)>G%BmuRd|+!~g8Pe|VnZ zT=+rfwrU7oGR=qkG%0ABF7>>!?cu@c!-xAwpgQp+bHXrN5G62 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%0D;z962*cjdm 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 + + + DotNetZip + + + + + Delivers the remaining bits, left-aligned, in a byte. + + + + This is valid only if NumRemainingBits is less than 8; + in other words it is valid only after a call to Flush(). + + + + + + Reset the BitWriter. + + + + This is useful when the BitWriter writes into a MemoryStream, and + is used by a BZip2Compressor, which itself is re-used for multiple + distinct data blocks. + + + + + + Write some number of bits from the given value, into the output. + + + + The nbits value should be a max of 25, for safety. For performance + reasons, this method does not check! + + + + + + Write a full 8-bit byte into the output. + + + + + Write four 8-bit bytes into the output. + + + + + Write all available byte-aligned bytes. + + + + This method writes no new output, but flushes any accumulated + bits. At completion, the accumulator may contain up to 7 + bits. + + + This is necessary when re-assembling output from N independent + compressors, one for each of N blocks. The output of any + particular compressor will in general have some fragment of a byte + remaining. This fragment needs to be accumulated into the + parent BZip2OutputStream. + + + + + + Writes all available bytes, and emits padding for the final byte as + necessary. This must be the last method invoked on an instance of + BitWriter. + + + + Knuth's increments seem to work better than Incerpi-Sedgewick here. + Possibly because the number of elems to sort is usually small, typically + <= 20. + + + + BZip2Compressor writes its compressed data out via a BitWriter. This + is necessary because BZip2 does byte shredding. + + + + + The number of uncompressed bytes being held in the buffer. + + + + I am thinking this may be useful in a Stream that uses this + compressor class. In the Close() method on the stream it could + check this value to see if anything has been written at all. You + may think the stream could easily track the number of bytes it + wrote, which would eliminate the need for this. But, there is the + case where the stream writes a complete block, and it is full, and + then writes no more. In that case the stream may want to check. + + + + + + Accept new bytes into the compressor data buffer + + + + This method does the first-level (cheap) run-length encoding, and + stores the encoded data into the rle block. + + + + + + Process one input byte into the block. + + + + + To "process" the byte means to do the run-length encoding. + There are 3 possible return values: + + 0 - the byte was not written, in other words, not + encoded into the block. This happens when the + byte b would require the start of a new run, and + the block has no more room for new runs. + + 1 - the byte was written, and the block is not full. + + 2 - the byte was written, and the block is full. + + + + 0 if the byte was not written, non-zero if written. + + + + Append one run to the output block. + + + + + This compressor does run-length-encoding before BWT and etc. This + method simply appends a run to the output block. The append always + succeeds. The return value indicates whether the block is full: + false (not full) implies that at least one additional run could be + processed. + + + true if the block is now full; otherwise false. + + + + Compress the data that has been placed (Run-length-encoded) into the + block. The compressed data goes into the CompressedBytes array. + + + + Side effects: 1. fills the CompressedBytes array. 2. sets the + AvailableBytesOut property. + + + + + This is the most hammered method of this class. + +

+ This is the version using unrolled loops. +

+
+ + Method "mainQSort3", file "blocksort.c", BZip2 1.0.2 + + + Array instance identical to sfmap, both are used only + temporarily and independently, so we do not need to allocate + additional memory. + + + + A read-only decorator stream that performs BZip2 decompression on Read. + + + + + Compressor State + + + + + Create a BZip2InputStream, wrapping it around the given input Stream. + + + + The input stream will be closed when the BZip2InputStream is closed. + + + The stream from which to read compressed data + + + + Create a BZip2InputStream with the given stream, and + specifying whether to leave the wrapped stream open when + the BZip2InputStream is closed. + + The stream from which to read compressed data + + Whether to leave the input stream open, when the BZip2InputStream closes. + + + + + This example reads a bzip2-compressed file, decompresses it, + and writes the decompressed data into a newly created file. + + + var fname = "logfile.log.bz2"; + using (var fs = File.OpenRead(fname)) + { + using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) + { + var outFname = fname + ".decompressed"; + using (var output = File.Create(outFname)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, n); + } + } + } + } + + + + + + Read data from the stream. + + + + + To decompress a BZip2 data stream, create a BZip2InputStream, + providing a stream that reads compressed data. Then call Read() on + that BZip2InputStream, and the data read will be decompressed + as you read. + + + + A BZip2InputStream can be used only for Read(), not for Write(). + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Read a single byte from the stream. + + the byte read from the stream, or -1 if EOF + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes read in. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + + + + Dispose the stream. + + + indicates whether the Dispose method was invoked by user code. + + + + + Close the stream. + + + + + Read n bits from input, right justifying the result. + + + + For example, if you read 1 bit, the result is either 0 + or 1. + + + + The number of bits to read, always between 1 and 32. + + + + Called by createHuffmanDecodingTables() exclusively. + + + Called by recvDecodingTables() exclusively. + + + Freq table collected to save a pass over the data during + decompression. + + + Initializes the tt array. + + This method is called when the required length of the array is known. + I don't initialize it at construction time to avoid unneccessary + memory allocation when compressing small files. + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. + + + + + Constructs a new BZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.BZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new BZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new BZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new BZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the BZip2OutputStream to compress data while writing: + create a BZip2OutputStream with a writable output stream. + Then call Write() on that BZip2OutputStream, providing + uncompressed data as input. The data sent to the output stream will + be the compressed form of the input data. + + + + A BZip2OutputStream can be used only for Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value should always be true, unless and until the + object is disposed and closed. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. This stream compresses by + block using multiple threads. + + + This class performs BZIP2 compression through writing. For + more information on the BZIP2 algorithm, see + . + + + + This class is similar to , + except that this implementation uses an approach that employs multiple + worker threads to perform the compression. On a multi-cpu or multi-core + computer, the performance of this class can be significantly higher than + the single-threaded BZip2OutputStream, particularly for larger streams. + How large? Anything over 10mb is a good candidate for parallel + compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla BZip2OutputStream. Also, for small files, the + ParallelBZip2OutputStream can be much slower than the vanilla + BZip2OutputStream, because of the overhead associated to using the + thread pool. + + + + + + + Constructs a new ParallelBZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.ParallelBZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new ParallelBZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + The maximum number of concurrent compression worker threads to use. + + + + + This property sets an upper limit on the number of concurrent worker + threads to employ for compression. The implementation of this stream + employs multiple threads from the .NET thread pool, via + ThreadPool.QueueUserWorkItem(), to compress the incoming data by + block. As each block of data is compressed, this stream re-orders the + compressed blocks and writes them to the output stream. + + + + A higher number of workers enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + By default, DotNetZip allocates 4 workers per CPU core, subject to the + upper limit specified in this property. For example, suppose the + application sets this property to 16. Then, on a machine with 2 + cores, DotNetZip will use 8 workers; that number does not exceed the + upper limit specified by this property, so the actual number of + workers used will be 4 * 2 = 8. On a machine with 4 cores, DotNetZip + will use 16 workers; again, the limit does not apply. On a machine + with 8 cores, DotNetZip will use 16 workers, because of the limit. + + + + For each compression "worker thread" that occurs in parallel, there is + up to 2mb of memory allocated, for buffering and processing. The + actual number depends on the property. + + + + CPU utilization will also go up with additional workers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the ParallelBZip2OutputStream to compress data while + writing: create a ParallelBZip2OutputStream with a writable + output stream. Then call Write() on that + ParallelBZip2OutputStream, providing uncompressed data as + input. The data sent to the output stream will be the compressed + form of the input data. + + + + A ParallelBZip2OutputStream can be used only for + Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + The total number of bytes written out by the stream. + + + This value is meaningful only after a call to Close(). + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + Returns the "random" number at a specific index. + + the index + the random number + + + + An enum that provides the different self-extractor flavors + + + + + A self-extracting zip archive that runs from the console or + command line. + + + + + A self-extracting zip archive that presents a graphical user + interface when it is executed. + + + + + The options for generating a self-extracting archive. + + + + + The type of SFX to create. + + + + + The command to run after extraction. + + + + + This is optional. Leave it empty (null in C# or Nothing in + VB) to run no command after extraction. + + + + If it is non-empty, the SFX will execute the command specified in this + string on the user's machine, and using the extract directory as the + working directory for the process, after unpacking the archive. The + program to execute can include a path, if you like. If you want to execute + a program that accepts arguments, specify the program name, followed by a + space, and then the arguments for the program, each separated by a space, + just as you would on a normal command line. Example: program.exe arg1 + arg2. The string prior to the first space will be taken as the + program name, and the string following the first space specifies the + arguments to the program. + + + + If you want to execute a program that has a space in the name or path of + the file, surround the program name in double-quotes. The first character + of the command line should be a double-quote character, and there must be + a matching double-quote following the end of the program file name. Any + optional arguments to the program follow that, separated by + spaces. Example: "c:\project files\program name.exe" arg1 arg2. + + + + If the flavor of the SFX is SelfExtractorFlavor.ConsoleApplication, + then the SFX starts a new process, using this string as the post-extract + command line. The SFX waits for the process to exit. The exit code of + the post-extract command line is returned as the exit code of the + command-line self-extractor exe. A non-zero exit code is typically used to + indicated a failure by the program. In the case of an SFX, a non-zero exit + code may indicate a failure during extraction, OR, it may indicate a + failure of the run-after-extract program if specified, OR, it may indicate + the run-after-extract program could not be fuond. There is no way to + distinguish these conditions from the calling shell, aside from parsing + the output of the SFX. If you have Quiet set to true, you may not + see error messages, if a problem occurs. + + + + If the flavor of the SFX is + SelfExtractorFlavor.WinFormsApplication, then the SFX starts a new + process, using this string as the post-extract command line, and using the + extract directory as the working directory for the process. The SFX does + not wait for the command to complete, and does not check the exit code of + the program. If the run-after-extract program cannot be fuond, a message + box is displayed indicating that fact. + + + + You can specify environment variables within this string, with a format like + %NAME%. The value of these variables will be expanded at the time + the SFX is run. Example: %WINDIR%\system32\xcopy.exe may expand at + runtime to c:\Windows\System32\xcopy.exe. + + + + By combining this with the RemoveUnpackedFilesAfterExecute + flag, you can create an SFX that extracts itself, runs a file that + was extracted, then deletes all the files that were extracted. If + you want it to run "invisibly" then set Flavor to + SelfExtractorFlavor.ConsoleApplication, and set Quiet + to true. The user running such an EXE will see a console window + appear, then disappear quickly. You may also want to specify the + default extract location, with DefaultExtractDirectory. + + + + If you set Flavor to + SelfExtractorFlavor.WinFormsApplication, and set Quiet to + true, then a GUI with progressbars is displayed, but it is + "non-interactive" - it accepts no input from the user. Instead the SFX + just automatically unpacks and exits. + + + + + + + The default extract directory the user will see when + running the self-extracting archive. + + + + + Passing null (or Nothing in VB) here will cause the Self Extractor to use + the the user's personal directory () for the default extract + location. + + + + This is only a default location. The actual extract location will be + settable on the command line when the SFX is executed. + + + + You can specify environment variables within this string, + with %NAME%. The value of these variables will be + expanded at the time the SFX is run. Example: + %USERPROFILE%\Documents\unpack may expand at runtime to + c:\users\melvin\Documents\unpack. + + + + + + The name of an .ico file in the filesystem to use for the application icon + for the generated SFX. + + + + + Normally, DotNetZip will embed an "zipped folder" icon into the generated + SFX. If you prefer to use a different icon, you can specify it here. It + should be a .ico file. This file is passed as the /win32icon + option to the csc.exe compiler when constructing the SFX file. + + + + + + + Whether the ConsoleApplication SFX will be quiet during extraction. + + + + + This option affects the way the generated SFX runs. By default it is + false. When you set it to true,... + + + + + Flavor + Behavior + + + + ConsoleApplication + no messages will be emitted during successful + operation. Double-clicking the SFX in Windows + Explorer or as an attachment in an email will cause a console + window to appear briefly, before it disappears. If you run the + ConsoleApplication SFX from the cmd.exe prompt, it runs as a + normal console app; by default, because it is quiet, it displays + no messages to the console. If you pass the -v+ command line + argument to the Console SFX when you run it, you will get verbose + messages to the console. + + + + + WinFormsApplication + the SFX extracts automatically when the application + is launched, with no additional user input. + + + + + + + When you set it to false,... + + + + + Flavor + Behavior + + + + ConsoleApplication + the extractor will emit a + message to the console for each entry extracted. + + When double-clicking to launch the SFX, the console window will + remain, and the SFX will emit a message for each file as it + extracts. The messages fly by quickly, they won't be easily + readable, unless the extracted files are fairly large. + + + + + + WinFormsApplication + the SFX presents a forms UI and allows the user to select + options before extracting. + + + + + + + + + + Specify what the self-extractor will do when extracting an entry + would overwrite an existing file. + + + + The default behavvior is to Throw. + + + + + + Whether to remove the files that have been unpacked, after executing the + PostExtractCommandLine. + + + + + If true, and if there is a + PostExtractCommandLine, and if the command runs successfully, + then the files that the SFX unpacked will be removed, afterwards. If + the command does not complete successfully (non-zero return code), + that is interpreted as a failure, and the extracted files will not be + removed. + + + + Setting this flag, and setting Flavor to + SelfExtractorFlavor.ConsoleApplication, and setting Quiet to + true, results in an SFX that extracts itself, runs a file that was + extracted, then deletes all the files that were extracted, with no + intervention by the user. You may also want to specify the default + extract location, with DefaultExtractDirectory. + + + + + + + The file version number to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + + + The product version to embed into the generated EXE. It will show up, for + example, during a mouseover in Windows Explorer. + + + + You can use any arbitrary string, but a human-readable version number is + recommended. For example "v1.2 alpha" or "v4.2 RC2". If you specify nothing, + then there is no product version embedded into the EXE. + + + + + + The copyright notice, if any, to embed into the generated EXE. + + + + It will show up, for example, while viewing properties of the file in + Windows Explorer. You can use any arbitrary string, but typically you + want something like "Copyright � Dino Chiesa 2011". + + + + + + The description to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed during a + mouseover in Windows Explorer. If you specify nothing, then the string + "DotNetZip SFX Archive" is embedded into the EXE as the description. + + + + + + The product name to embed into the generated EXE. + + + + Use any arbitrary string. This text will be displayed + while viewing properties of the EXE file in + Windows Explorer. + + + + + + The title to display in the Window of a GUI SFX, while it extracts. + + + + + By default the title show in the GUI window of a self-extractor + is "DotNetZip Self-extractor (http://DotNetZip.codeplex.com/)". + You can change that by setting this property before saving the SFX. + + + + This property has an effect only when producing a Self-extractor + of flavor SelfExtractorFlavor.WinFormsApplication. + + + + + + + Additional options for the csc.exe compiler, when producing the SFX + EXE. + + + + + + Version of the csc.exe compiler, if not specified then the default version + will be used. + + + + + + The ZipFile type represents a zip archive file. + + + + + This is the main type in the DotNetZip class library. This class reads and + writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides a general purpose zip file capability. Use it to read, + create, or update zip files. When you want to create zip files using a + Stream type to write the zip file, you may want to consider the class. + + + + Both the ZipOutputStream class and the ZipFile class can + be used to create zip files. Both of them support many of the common zip + features, including Unicode, different compression methods and levels, + and ZIP64. They provide very similar performance when creating zip + files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipFile class implements the interface. In order for ZipFile to + produce a valid zip file, you use use it within a using clause (Using + in VB), or call the Dispose() method explicitly. See the examples + for how to employ a using clause. + + + + + + + Saves the ZipFile instance to a self-extracting zip archive. + + + + + + The generated exe image will execute on any machine that has the .NET + Framework 4.0 installed on it. The generated exe image is also a + valid ZIP file, readable with DotNetZip or another Zip library or tool + such as WinZip. + + + + There are two "flavors" of self-extracting archive. The + WinFormsApplication version will pop up a GUI and allow the + user to select a target directory into which to extract. There's also + a checkbox allowing the user to specify to overwrite existing files, + and another checkbox to allow the user to request that Explorer be + opened to see the extracted files after extraction. The other flavor + is ConsoleApplication. A self-extractor generated with that + flavor setting will run from the command line. It accepts command-line + options to set the overwrite behavior, and to specify the target + extraction directory. + + + + There are a few temporary files created during the saving to a + self-extracting zip. These files are created in the directory pointed + to by , which defaults to . These temporary files are + removed upon successful completion of this method. + + + + When a user runs the WinForms SFX, the user's personal directory (Environment.SpecialFolder.Personal) + will be used as the default extract location. If you want to set the + default extract location, you should use the other overload of + SaveSelfExtractor()/ The user who runs the SFX will have the + opportunity to change the extract directory before extracting. When + the user runs the Command-Line SFX, the user must explicitly specify + the directory to which to extract. The .NET Framework 4.0 is required + on the computer when the self-extracting archive is run. + + + + NB: This method is not available in the "Reduced" DotNetZip library. + + + + + + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting console-based exe"; + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + zip.SaveSelfExtractor("archive.exe", SelfExtractorFlavor.ConsoleApplication) + End Using + + + + + a pathname, possibly fully qualified, to be created. Typically it + will end in an .exe extension. + + Indicates whether a Winforms or Console self-extractor is + desired. + + + + Saves the ZipFile instance to a self-extracting zip archive, using + the specified save options. + + + + + This method saves a self extracting archive, using the specified save + options. These options include the flavor of the SFX, the default extract + directory, the icon file, and so on. See the documentation + for for more + details. + + + + The user who runs the SFX will have the opportunity to change the extract + directory before extracting. If at the time of extraction, the specified + directory does not exist, the SFX will create the directory before + extracting the files. + + + + + + This example saves a WinForms-based self-extracting archive EXE that + will use c:\ExtractHere as the default extract location. The C# code + shows syntax for .NET 3.0, which uses an object initializer for + the SelfExtractorOptions object. + + string DirectoryPath = "c:\\Documents\\Project7"; + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)); + zip.Comment = "This will be embedded into a self-extracting WinForms-based exe"; + var options = new SelfExtractorOptions + { + Flavor = SelfExtractorFlavor.WinFormsApplication, + DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere", + PostExtractCommandLine = ExeToRunAfterExtract, + SfxExeWindowTitle = "My Custom Window Title", + RemoveUnpackedFilesAfterExecute = true + }; + zip.SaveSelfExtractor("archive.exe", options); + } + + + Dim DirectoryPath As String = "c:\Documents\Project7" + Using zip As New ZipFile() + zip.AddDirectory(DirectoryPath, System.IO.Path.GetFileName(DirectoryPath)) + zip.Comment = "This will be embedded into a self-extracting console-based exe" + Dim options As New SelfExtractorOptions() + options.Flavor = SelfExtractorFlavor.WinFormsApplication + options.DefaultExtractDirectory = "%USERPROFILE%\\ExtractHere" + options.PostExtractCommandLine = ExeToRunAfterExtract + options.SfxExeWindowTitle = "My Custom Window Title" + options.RemoveUnpackedFilesAfterExecute = True + zip.SaveSelfExtractor("archive.exe", options) + End Using + + + + The name of the EXE to generate. + provides the options for creating the + Self-extracting archive. + + + + Adds an item, either a file or a directory, to a zip file archive. + + + + + This method is handy if you are adding things to zip archive and don't + want to bother distinguishing between directories or files. Any files are + added as single entries. A directory added through this method is added + recursively: all files and subdirectories contained within the directory + are added to the ZipFile. + + + + The name of the item may be a relative path or a fully-qualified + path. Remember, the items contained in ZipFile instance get written + to the disk only when you call or a similar + save method. + + + + The directory name used for the file within the archive is the same + as the directory name (potentially a relative path) specified in the + . + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + This method has two overloads. + + the name of the file or directory to add. + + The ZipEntry added. + + + + Adds an item, either a file or a directory, to a zip file archive, + explicitly specifying the directory path to be used in the archive. + + + + + If adding a directory, the add is recursive on all files and + subdirectories contained within it. + + + The name of the item may be a relative path or a fully-qualified path. + The item added by this call to the ZipFile is not read from the + disk nor written to the zip file archive until the application calls + Save() on the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive, which would override the + "natural" path of the filesystem file. + + + + Encryption will be used on the file data if the Password has + been set on the ZipFile object, prior to calling this method. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + Thrown if the file or directory passed in does not exist. + + + the name of the file or directory to add. + + + + The name of the directory path to use within the zip archive. This path + need not refer to an extant directory in the current filesystem. If the + files within the zip are later extracted, this is the path used for the + extracted file. Passing null (Nothing in VB) will use the + path on the fileOrDirectoryName. Passing the empty string ("") will + insert the item at the root path within the archive. + + + + + + + + This example shows how to zip up a set of files into a flat hierarchy, + regardless of where in the filesystem the files originated. The resulting + zip archive will contain a toplevel directory named "flat", which itself + will contain files Readme.txt, MyProposal.docx, and Image1.jpg. A + subdirectory under "flat" called SupportFiles will contain all the files + in the "c:\SupportFiles" directory on disk. + + + String[] itemnames= { + "c:\\fixedContent\\Readme.txt", + "MyProposal.docx", + "c:\\SupportFiles", // a directory + "images\\Image1.jpg" + }; + + try + { + using (ZipFile zip = new ZipFile()) + { + for (int i = 1; i < itemnames.Length; i++) + { + // will add Files or Dirs, recurses and flattens subdirectories + zip.AddItem(itemnames[i],"flat"); + } + zip.Save(ZipToCreate); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Dim itemnames As String() = _ + New String() { "c:\fixedContent\Readme.txt", _ + "MyProposal.docx", _ + "SupportFiles", _ + "images\Image1.jpg" } + Try + Using zip As New ZipFile + Dim i As Integer + For i = 1 To itemnames.Length - 1 + ' will add Files or Dirs, recursing and flattening subdirectories. + zip.AddItem(itemnames(i), "flat") + Next i + zip.Save(ZipToCreate) + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString()) + End Try + + + The ZipEntry added. + + + + Adds a File to a Zip file archive. + + + + + This call collects metadata for the named file in the filesystem, + including the file attributes and the timestamp, and inserts that metadata + into the resulting ZipEntry. Only when the application calls Save() on + the ZipFile, does DotNetZip read the file from the filesystem and + then write the content to the zip file archive. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called photos\personal. The pdf file + will be included into a folder within the zip called Desktop. + + + try + { + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("c:\\photos\\personal\\7440-N49th.png"); + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf"); + zip.AddFile("ReadMe.txt"); + + zip.Save("Package.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: " + ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + zip.AddFile("c:\photos\personal\7440-N49th.png") + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf") + zip.AddFile("ReadMe.txt") + zip.Save("Package.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString) + End Try + + + + This method has two overloads. + + + + + + + The name of the file to add. It should refer to a file in the filesystem. + The name of the file may be a relative path or a fully-qualified path. + + The ZipEntry corresponding to the File added. + + + + Adds a File to a Zip file archive, potentially overriding the path to be + used within the zip archive. + + + + + The file added by this call to the ZipFile is not written to the + zip file archive until the application calls Save() on the ZipFile. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called images. The pdf file will be + included into a folder within the zip called files\docs, and will be + encrypted with the given password. + + + try + { + using (ZipFile zip = new ZipFile()) + { + // the following entry will be inserted at the root in the archive. + zip.AddFile("c:\\datafiles\\ReadMe.txt", ""); + // this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\\photos\\personal\\7440-N49th.png", "images"); + // the following will result in a password-protected file called + // files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!"; + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf", "files\\docs"); + zip.Save("Archive.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + ' the following entry will be inserted at the root in the archive. + zip.AddFile("c:\datafiles\ReadMe.txt", "") + ' this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\photos\personal\7440-N49th.png", "images") + ' the following will result in a password-protected file called + ' files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!" + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf", "files\documents") + zip.Save("Archive.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1) + End Try + + + + + + + + + The name of the file to add. The name of the file may be a relative path + or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the fileName. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on the fileName, if any. Passing the empty string + ("") will insert the item at the root path within the archive. + + + The ZipEntry corresponding to the file added. + + + + This method removes a collection of entries from the ZipFile. + + + + A collection of ZipEntry instances from this zip file to be removed. For + example, you can pass in an array of ZipEntry instances; or you can call + SelectEntries(), and then add or remove entries from that + ICollection<ZipEntry> (ICollection(Of ZipEntry) in VB), and pass + that ICollection to this method. + + + + + + + + This method removes a collection of entries from the ZipFile, by name. + + + + A collection of strings that refer to names of entries to be removed + from the ZipFile. For example, you can pass in an array or a + List of Strings that provide the names of entries to be removed. + + + + + + + + This method adds a set of files to the ZipFile. + + + + + Use this method to add a set of files to the zip archive, in one call. + For example, a list of files received from + System.IO.Directory.GetFiles() can be added to a zip archive in one + call. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to add. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + This example shows how to create a zip file, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile + ' Store all files found in the top level directory, into the zip archive. + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save(ZipFileToCreate) + End Using + + + + + + + + Adds or updates a set of files in the ZipFile. + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to update. Each string should refer to a file in + the filesystem. The name of the file may be a relative path or a fully-qualified path. + + + + + + Adds a set of files to the ZipFile, using the + specified directory path in the archive. + + + + + Any directory structure that may be present in the + filenames contained in the list is "flattened" in the + archive. Each file in the list is added to the archive in + the specified top-level directory. + + + + For ZipFile properties including , , , , , , and , their respective values at the + time of this call will be applied to each ZipEntry added. + + + + + The names of the files to add. Each string should refer to + a file in the filesystem. The name of the file may be a + relative path or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + Th is path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds a set of files to the ZipFile, using the specified directory + path in the archive, and preserving the full directory structure in the + filenames. + + + + + + Think of the as a "root" or + base directory used in the archive for the files that get added. when + is true, the hierarchy of files + found in the filesystem will be placed, with the hierarchy intact, + starting at that root in the archive. When preserveDirHierarchy + is false, the path hierarchy of files is flattned, and the flattened + set of files gets placed in the root within the archive as specified in + directoryPathInArchive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + The names of the files to add. Each string should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use as a prefix for each entry name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + whether the entries in the zip archive will reflect the directory + hierarchy that is present in the various filenames. For example, if + includes two paths, + \Animalia\Chordata\Mammalia\Info.txt and + \Plantae\Magnoliophyta\Dicotyledon\Info.txt, then calling this method + with = false will + result in an exception because of a duplicate entry name, while + calling this method with = + true will result in the full direcory paths being included in + the entries added to the ZipFile. + + + + + + Adds or updates a set of files to the ZipFile, using the specified + directory path in the archive. + + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The names of the files to add or update. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. The UpdateFile method might more accurately be + called "AddOrUpdateFile". + + + + Upon success, there is no way for the application to learn whether the file + was added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + This example shows how to Update an existing entry in a zipfile. The first + call to UpdateFile adds the file to the newly-created zip archive. The + second call to UpdateFile updates the content for that file in the zip + archive. + + + using (ZipFile zip1 = new ZipFile()) + { + // UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\\Readme.txt"); + zip1.UpdateFile("CustomerList.csv"); + zip1.Comment = "This zip archive has been created."; + zip1.Save("Content.zip"); + } + + using (ZipFile zip2 = ZipFile.Read("Content.zip")) + { + zip2.UpdateFile("Updates\\Readme.txt"); + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed."; + zip2.Save(); + } + + + + Using zip1 As New ZipFile + ' UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\Readme.txt") + zip1.UpdateFile("CustomerList.csv") + zip1.Comment = "This zip archive has been created." + zip1.Save("Content.zip") + End Using + + Using zip2 As ZipFile = ZipFile.Read("Content.zip") + zip2.UpdateFile("Updates\Readme.txt") + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed." + zip2.Save + End Using + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. The entry to be added or + updated is found by using the specified directory path, combined with the + basename of the specified filename. + + + + Upon success, there is no way for the application to learn if the file was + added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the + fileName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + fileName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Add or update a directory in a zip archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated in + the zip archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a directory in the zip archive at the specified root + directory in the archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated + in the zip archive. + + + + Specifies a directory path to use to override any path in the + directoryName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + directoryName, if any. Passing the empty string ("") will insert + the item at the root path within the archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a file or directory in the zip archive. + + + + + This is useful when the application is not sure or does not care if the + item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry() if an entry by the same name + already exists, followed calling by AddItem(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + the path to the file or directory to be added or updated. + + + + + Add or update a file or directory. + + + + + This method is useful when the application is not sure or does not care if + the item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry(), if an entry by that name + exists, and then calling AddItem(). + + + + This version of the method allows the caller to explicitly specify the + directory path to be used for the item being added to the archive. The + entry or entries that are added or updated will use the specified + DirectoryPathInArchive. Extracting the entry from the archive will + result in a file stored in that directory path. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The path for the File or Directory to be added or updated. + + + Specifies a directory path to use to override any path in the + itemName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + itemName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string. + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. The content for the entry is encoded using the default text + encoding for the machine. + + + + The content of the file, should it be extracted from the zip. + + + + The name, including any path, to use for the entry within the archive. + + + The ZipEntry added. + + + + This example shows how to add an entry to the zipfile, using a string as + content for that entry. + + + string Content = "This string will be the content of the Readme.txt file in the zip archive."; + using (ZipFile zip1 = new ZipFile()) + { + zip1.AddFile("MyDocuments\\Resume.doc", "files"); + zip1.AddEntry("Readme.txt", Content); + zip1.Comment = "This zip file was created at " + System.DateTime.Now.ToString("G"); + zip1.Save("Content.zip"); + } + + + + Public Sub Run() + Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive." + Using zip1 As ZipFile = New ZipFile + zip1.AddEntry("Readme.txt", Content) + zip1.AddFile("MyDocuments\Resume.doc", "files") + zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G")) + zip1.Save("Content.zip") + End Using + End Sub + + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string, and using the specified text encoding. + + + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. + + + + The content for the entry, a string value, is encoded using the given + text encoding. A BOM (byte-order-mark) is emitted into the file, if the + Encoding parameter is set for that. + + + + Most Encoding classes support a constructor that accepts a boolean, + indicating whether to emit a BOM or not. For example see . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the fileName, as specified + in . + + + The ZipEntry added. + + + + + Create an entry in the ZipFile using the given Stream + as input. The entry will have the given filename. + + + + + + The application should provide an open, readable stream; in this case it + will be read during the call to or one of + its overloads. + + + + The passed stream will be read from its current position. If + necessary, callers should set the position in the stream before + calling AddEntry(). This might be appropriate when using this method + with a MemoryStream, for example. + + + + In cases where a large number of streams will be added to the + ZipFile, the application may wish to avoid maintaining all of the + streams open simultaneously. To handle this situation, the application + should use the + overload. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example adds a single entry to a ZipFile via a Stream. + + + + String zipToCreate = "Content.zip"; + String fileNameInArchive = "Content-From-Stream.bin"; + using (System.IO.Stream streamToRead = MyStreamOpener()) + { + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry= zip.AddEntry(fileNameInArchive, streamToRead); + zip.AddFile("Readme.txt"); + zip.Save(zipToCreate); // the stream is read implicitly here + } + } + + + + Dim zipToCreate As String = "Content.zip" + Dim fileNameInArchive As String = "Content-From-Stream.bin" + Using streamToRead as System.IO.Stream = MyStreamOpener() + Using zip As ZipFile = New ZipFile() + Dim entry as ZipEntry = zip.AddEntry(fileNameInArchive, streamToRead) + zip.AddFile("Readme.txt") + zip.Save(zipToCreate) '' the stream is read implicitly, here + End Using + End Using + + + + + + + The name, including any path, which is shown in the zip file for the added + entry. + + + The input stream from which to grab content for the file + + The ZipEntry added. + + + + Add a ZipEntry for which content is written directly by the application. + + + + + When the application needs to write the zip entry data, use this + method to add the ZipEntry. For example, in the case that the + application wishes to write the XML representation of a DataSet into + a ZipEntry, the application can use this method to do so. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + About progress events: When using the WriteDelegate, DotNetZip does + not issue any SaveProgress events with EventType = + Saving_EntryBytesRead. (This is because it is the + application's code that runs in WriteDelegate - there's no way for + DotNetZip to know when to issue a EntryBytesRead event.) + Applications that want to update a progress bar or similar status + indicator should do so from within the WriteDelegate + itself. DotNetZip will issue the other SaveProgress events, + including + Saving_Started, + + Saving_BeforeWriteEntry, and + Saving_AfterWriteEntry. + + + + Note: When you use PKZip encryption, it's normally necessary to + compute the CRC of the content to be encrypted, before compressing or + encrypting it. Therefore, when using PKZip encryption with a + WriteDelegate, the WriteDelegate CAN BE called twice: once to compute + the CRC, and the second time to potentially compress and + encrypt. Surprising, but true. This is because PKWARE specified that + the encryption initialization data depends on the CRC. + If this happens, for each call of the delegate, your + application must stream the same entry data in its entirety. If your + application writes different data during the second call, it will + result in a corrupt zip file. + + + + The double-read behavior happens with all types of entries, not only + those that use WriteDelegate. It happens if you add an entry from a + filesystem file, or using a string, or a stream, or an opener/closer + pair. But in those cases, DotNetZip takes care of reading twice; in + the case of the WriteDelegate, the application code gets invoked + twice. Be aware. + + + + As you can imagine, this can cause performance problems for large + streams, and it can lead to correctness problems when you use a + WriteDelegate. This is a pretty big pitfall. There are two + ways to avoid it. First, and most preferred: don't use PKZIP + encryption. If you use the WinZip AES encryption, this problem + doesn't occur, because the encryption protocol doesn't require the CRC + up front. Second: if you do choose to use PKZIP encryption, write out + to a non-seekable stream (like standard output, or the + Response.OutputStream in an ASP.NET application). In this case, + DotNetZip will use an alternative encryption protocol that does not + rely on the CRC of the content. This also implies setting bit 3 in + the zip entry, which still presents problems for some zip tools. + + + + In the future I may modify DotNetZip to *always* use bit 3 when PKZIP + encryption is in use. This seems like a win overall, but there will + be some work involved. If you feel strongly about it, visit the + DotNetZip forums and vote up the Workitem + tracking this issue. + + + + + the name of the entry to add + the delegate which will write the entry content + the ZipEntry added + + + + This example shows an application filling a DataSet, then saving the + contents of that DataSet as XML, into a ZipEntry in a ZipFile, using an + anonymous delegate in C#. The DataSet XML is never saved to a disk file. + + + var c1= new System.Data.SqlClient.SqlConnection(connstring1); + var da = new System.Data.SqlClient.SqlDataAdapter() + { + SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1) + }; + + DataSet ds1 = new DataSet(); + da.Fill(ds1, "Invoices"); + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) ); + zip.Save(zipFileName); + } + + + + + + This example uses an anonymous method in C# as the WriteDelegate to provide + the data for the ZipEntry. The example is a bit contrived - the + AddFile() method is a simpler way to insert the contents of a file + into an entry in a zip file. On the other hand, if there is some sort of + processing or transformation of the file contents required before writing, + the application could use the WriteDelegate to do it, in this way. + + + using (var input = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite )) + { + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,output) => + { + byte[] buffer = new byte[BufferSize]; + int n; + while ((n = input.Read(buffer, 0, buffer.Length)) != 0) + { + // could transform the data here... + output.Write(buffer, 0, n); + // could update a progress bar here + } + }); + + zip.Save(zipFileName); + } + } + + + + + + This example uses a named delegate in VB to write data for the given + ZipEntry (VB9 does not have anonymous delegates). The example here is a bit + contrived - a simpler way to add the contents of a file to a ZipEntry is to + simply use the appropriate AddFile() method. The key scenario for + which the WriteDelegate makes sense is saving a DataSet, in XML + format, to the zip file. The DataSet can write XML to a stream, and the + WriteDelegate is the perfect place to write into the zip file. There may be + other data structures that can write to a stream, but cannot be read as a + stream. The WriteDelegate would be appropriate for those cases as + well. + + + Private Sub WriteEntry (ByVal name As String, ByVal output As Stream) + Using input As FileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer = -1 + Dim buffer As Byte() = New Byte(BufferSize){} + Do While n <> 0 + n = input.Read(buffer, 0, buffer.Length) + output.Write(buffer, 0, n) + Loop + End Using + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + Add an entry, for which the application will provide a stream + containing the entry data, on a just-in-time basis. + + + + + In cases where the application wishes to open the stream that + holds the content for the ZipEntry, on a just-in-time basis, the + application can use this method. The application provides an + opener delegate that will be called by the DotNetZip library to + obtain a readable stream that can be read to get the bytes for + the given entry. Typically, this delegate opens a stream. + Optionally, the application can provide a closer delegate as + well, which will be called by DotNetZip when all bytes have been + read from the entry. + + + + These delegates are called from within the scope of the call to + ZipFile.Save(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example uses anonymous methods in C# to open and close the + source stream for the content for a zip entry. + + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, + (name) => File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ), + (name, stream) => stream.Close() + ); + + zip.Save(zipFileName); + } + + + + + + + This example uses delegates in VB.NET to open and close the + the source stream for the content for a zip entry. VB 9.0 lacks + support for "Sub" lambda expressions, and so the CloseDelegate must + be an actual, named Sub. + + + + Function MyStreamOpener(ByVal entryName As String) As Stream + '' This simply opens a file. You probably want to do somethinig + '' more involved here: open a stream to read from a database, + '' open a stream on an HTTP connection, and so on. + Return File.OpenRead(entryName) + End Function + + Sub MyStreamCloser(entryName As String, stream As Stream) + stream.Close() + End Sub + + Public Sub Run() + Dim dirToZip As String = "fodder" + Dim zipFileToCreate As String = "Archive.zip" + Dim opener As OpenDelegate = AddressOf MyStreamOpener + Dim closer As CloseDelegate = AddressOf MyStreamCloser + Dim numFilestoAdd As Int32 = 4 + Using zip As ZipFile = New ZipFile + Dim i As Integer + For i = 0 To numFilesToAdd - 1 + zip.AddEntry(String.Format("content-{0:000}.txt"), opener, closer) + Next i + zip.Save(zipFileToCreate) + End Using + End Sub + + + + + the name of the entry to add + + the delegate that will be invoked by ZipFile.Save() to get the + readable stream for the given entry. ZipFile.Save() will call + read on this stream to obtain the data for the entry. This data + will then be compressed and written to the newly created zip + file. + + + the delegate that will be invoked to close the stream. This may + be null (Nothing in VB), in which case no call is makde to close + the stream. + + the ZipEntry added + + + + + Updates the given entry in the ZipFile, using the given + string as content for the ZipEntry. + + + + + + Calling this method is equivalent to removing the ZipEntry for + the given file name and directory path, if it exists, and then calling + . See the documentation for + that method for further explanation. The string content is encoded + using the default encoding for the machine. This encoding is distinct + from the encoding used for the filename itself. See + . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given string as + content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the filename. See . + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegate + as the source for content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + the delegate which will write the entry content. + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegates + to open and close the stream that provides the content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + + The ZipEntry added or updated. + + + + + Updates the given entry in the ZipFile, using the given stream as + input, and the given filename and given directory Path. + + + + + Calling the method is equivalent to calling RemoveEntry() if an + entry by the same name already exists, and then calling AddEntry() + with the given fileName and stream. + + + + The stream must be open and readable during the call to + ZipFile.Save. You can dispense the stream on a just-in-time basis + using the property. Check the + documentation of that property for more information. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name, including any path, to use within the archive for the entry. + + + The input stream from which to read file data. + The ZipEntry added. + + + + Add an entry into the zip archive using the given filename and + directory path within the archive, and the given content for the + file. No file is created in the filesystem. + + + The data to use for the entry. + + + The name, including any path, to use within the archive for the entry. + + + The ZipEntry added. + + + + Updates the given entry in the ZipFile, using the given byte + array as content for the entry. + + + + Calling this method is equivalent to removing the ZipEntry + for the given filename and directory path, if it exists, and then + calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + The content to use for the ZipEntry. + + The ZipEntry added. + + + + + Adds the contents of a filesystem directory to a Zip file archive. + + + + + + The name of the directory may be a relative path or a fully-qualified + path. Any files within the named directory are added to the archive. Any + subdirectories within the named directory are also added to the archive, + recursively. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + If you want the entries to appear in a containing directory in the zip + archive itself, then you should call the AddDirectory() overload that + allows you to explicitly specify a directory path for use in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + + + + This method has 2 overloads. + + The name of the directory to add. + The ZipEntry added. + + + + Adds the contents of a filesystem directory to a Zip file archive, + overriding the path to be used for entries in the archive. + + + + + The name of the directory may be a relative path or a fully-qualified + path. The add operation is recursive, so that any files or subdirectories + within the name directory are also added to the archive. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + In this code, calling the ZipUp() method with a value of "c:\reports" for + the directory parameter will result in a zip file structure in which all + entries are contained in a toplevel "reports" directory. + + + + public void ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) + { + zip.AddDirectory(directory, System.IO.Path.GetFileName(directory)); + zip.Save(targetZip); + } + } + + + + + + + + The name of the directory to add. + + + Specifies a directory path to use to override any path in the + DirectoryName. This path may, or may not, correspond to a real directory + in the current filesystem. If the zip is later extracted, this is the + path used for the extracted file or directory. Passing null + (Nothing in VB) or the empty string ("") will insert the items at + the root path within the archive. + + + The ZipEntry added. + + + + Creates a directory in the zip archive. + + + + + + Use this when you want to create a directory in the archive but there is + no corresponding filesystem representation for that directory. + + + + You will probably not need to do this in your code. One of the only times + you will want to do this is if you want an empty directory in the zip + archive. The reason: if you add a file to a zip archive that is stored + within a multi-level directory, all of the directory tree is implicitly + created in the zip archive. + + + + + + The name of the directory to create in the archive. + + The ZipEntry added. + + + + Checks a zip file to see if its directory is consistent. + + + + + + In cases of data error, the directory within a zip file can get out + of synch with the entries in the zip file. This method checks the + given zip file and returns true if this has occurred. + + + This method may take a long time to run for large zip files. + + + This method is not supported in the Reduced version of DotNetZip. + + + + Developers using COM can use the ComHelper.CheckZip(String) + method. + + + + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + + + + Checks a zip file to see if its directory is consistent, + and optionally fixes the directory if necessary. + + + + + + In cases of data error, the directory within a zip file can get out of + synch with the entries in the zip file. This method checks the given + zip file, and returns true if this has occurred. It also optionally + fixes the zipfile, saving the fixed copy in Name_Fixed.zip. + + + + This method may take a long time to run for large zip files. It + will take even longer if the file actually needs to be fixed, and if + fixIfNecessary is true. + + + + This method is not supported in the Reduced version of DotNetZip. + + + + + The filename to of the zip file to check. + + If true, the method will fix the zip file if + necessary. + + + a TextWriter in which messages generated while checking will be written. + + + true if the named zip is OK; false if the file needs to be fixed. + + + + + + + Rewrite the directory within a zipfile. + + + + + + In cases of data error, the directory in a zip file can get out of + synch with the entries in the zip file. This method attempts to fix + the zip file if this has occurred. + + + This can take a long time for large zip files. + + This won't work if the zip file uses a non-standard + code page - neither IBM437 nor UTF-8. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.FixZipDirectory(String) + method. + + + + + The filename to of the zip file to fix. + + + + + + + Verify the password on a zip file. + + + + + Keep in mind that passwords in zipfiles are applied to + zip entries, not to the entire zip file. So testing a + zipfile for a particular password doesn't work in the + general case. On the other hand, it's often the case + that a single password will be used on all entries in a + zip file. This method works for that case. + + + There is no way to check a password without doing the + decryption. So this code decrypts and extracts the given + zipfile into + + + + The filename to of the zip file to fix. + + The password to check. + + a bool indicating whether the password matches. + + + + Provides a human-readable string with information about the ZipFile. + + + + + The information string contains 10 lines or so, about each ZipEntry, + describing whether encryption is in use, the compressed and uncompressed + length of the entry, the offset of the entry, and so on. As a result the + information string can be very long for zip files that contain many + entries. + + + This information is mostly useful for diagnostic purposes. + + + + + + Indicates whether to perform a full scan of the zip file when reading it. + + + + + + You almost never want to use this property. + + + + When reading a zip file, if this flag is true (True in + VB), the entire zip archive will be scanned and searched for entries. + For large archives, this can take a very, long time. The much more + efficient default behavior is to read the zip directory, which is + stored at the end of the zip file. But, in some cases the directory is + corrupted and you need to perform a full scan of the zip file to + determine the contents of the zip file. This property lets you do + that, when necessary. + + + + This flag is effective only when calling . Normally you would read a ZipFile with the + static ZipFile.Read + method. But you can't set the FullScan property on the + ZipFile instance when you use a static factory method like + ZipFile.Read. + + + + + + + This example shows how to read a zip file using the full scan approach, + and then save it, thereby producing a corrected zip file. + + + using (var zip = new ZipFile()) + { + zip.FullScan = true; + zip.Initialize(zipFileName); + zip.Save(newName); + } + + + + Using zip As New ZipFile + zip.FullScan = True + zip.Initialize(zipFileName) + zip.Save(newName) + End Using + + + + + + + Whether to sort the ZipEntries before saving the file. + + + + The default is false. If you have a large number of zip entries, the sort + alone can consume significant time. + + + + + using (var zip = new ZipFile()) + { + zip.AddFiles(filesToAdd); + zip.SortEntriesBeforeSaving = true; + zip.Save(name); + } + + + + Using zip As New ZipFile + zip.AddFiles(filesToAdd) + zip.SortEntriesBeforeSaving = True + zip.Save(name) + End Using + + + + + + + Indicates whether NTFS Reparse Points, like junctions, should be + traversed during calls to AddDirectory(). + + + + By default, calls to AddDirectory() will traverse NTFS reparse + points, like mounted volumes, and directory junctions. An example + of a junction is the "My Music" directory in Windows Vista. In some + cases you may not want DotNetZip to traverse those directories. In + that case, set this property to false. + + + + + using (var zip = new ZipFile()) + { + zip.AddDirectoryWillTraverseReparsePoints = false; + zip.AddDirectory(dirToZip,"fodder"); + zip.Save(zipFileToCreate); + } + + + + + + Size of the IO buffer used while saving. + + + + + + First, let me say that you really don't need to bother with this. It is + here to allow for optimizations that you probably won't make! It will work + fine if you don't set or get this property at all. Ok? + + + + Now that we have that out of the way, the fine print: This + property affects the size of the buffer that is used for I/O for each + entry contained in the zip file. When a file is read in to be compressed, + it uses a buffer given by the size here. When you update a zip file, the + data for unmodified entries is copied from the first zip file to the + other, through a buffer given by the size here. + + + + Changing the buffer size affects a few things: first, for larger buffer + sizes, the memory used by the ZipFile, obviously, will be larger + during I/O operations. This may make operations faster for very much + larger files. Last, for any given entry, when you use a larger buffer + there will be fewer progress events during I/O operations, because there's + one progress event generated for each time the buffer is filled and then + emptied. + + + + The default buffer size is 8k. Increasing the buffer size may speed + things up as you compress larger files. But there are no hard-and-fast + rules here, eh? You won't know til you test it. And there will be a + limit where ever larger buffers actually slow things down. So as I said + in the beginning, it's probably best if you don't set or get this property + at all. + + + + + + This example shows how you might set a large buffer size for efficiency when + dealing with zip entries that are larger than 1gb. + + using (ZipFile zip = new ZipFile()) + { + zip.SaveProgress += this.zip1_SaveProgress; + zip.AddDirectory(directoryToZip, ""); + zip.UseZip64WhenSaving = Zip64Option.Always; + zip.BufferSize = 65536*8; // 65536 * 8 = 512k + zip.Save(ZipFileToCreate); + } + + + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + + When doing ZLIB or Deflate compression, the library fills a buffer, + then passes it to the compressor for compression. Then the library + reads out the compressed bytes. This happens repeatedly until there + is no more uncompressed data to compress. This property sets the + size of the buffer that will be used for chunk-wise compression. In + order for the setting to take effect, your application needs to set + this property before calling one of the ZipFile.Save() + overloads. + + + Setting this affects the performance and memory efficiency of + compression and decompression. For larger files, setting this to a + larger size may improve compression performance, but the exact + numbers vary depending on available memory, the size of the streams + you are compressing, and a bunch of other variables. I don't have + good firm recommendations on how to set it. You'll have to test it + yourself. Or just leave it alone and accept the default. + + + + + + Indicates whether extracted files should keep their paths as + stored in the zip archive. + + + + + This property affects Extraction. It is not used when creating zip + archives. + + + + With this property set to false, the default, extracting entries + from a zip file will create files in the filesystem that have the full + path associated to the entry within the zip file. With this property set + to true, extracting entries from the zip file results in files + with no path: the folders are "flattened." + + + + An example: suppose the zip file contains entries /directory1/file1.txt and + /directory2/file2.txt. With FlattenFoldersOnExtract set to false, + the files created will be \directory1\file1.txt and \directory2\file2.txt. + With the property set to true, the files created are file1.txt and file2.txt. + + + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when + compressing entries using the DEFLATE method. Different compression + strategies work better on different sorts of data. The strategy + parameter can affect the compression ratio and the speed of + compression but not the correctness of the compresssion. For more + information see Ionic.Zlib.CompressionStrategy. + + + + + The name of the ZipFile, on disk. + + + + + + When the ZipFile instance was created by reading an archive using + one of the ZipFile.Read methods, this property represents the name + of the zip file that was read. When the ZipFile instance was + created by using the no-argument constructor, this value is null + (Nothing in VB). + + + + If you use the no-argument constructor, and you then explicitly set this + property, when you call , this name will + specify the name of the zip file created. Doing so is equivalent to + calling . When instantiating a + ZipFile by reading from a stream or byte array, the Name + property remains null. When saving to a stream, the Name + property is implicitly set to null. + + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified compression level. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method for the zipfile. + + + + By default, the compression method is CompressionMethod.Deflate. + + + + + + + A comment attached to the zip archive. + + + + + + This property is read/write. It allows the application to specify a + comment for the ZipFile, or read the comment for the + ZipFile. After setting this property, changes are only made + permanent when you call a Save() method. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zip file that is + not readable by any tool or application. For best interoperability, leave + alone, or specify it only + once, before adding any entries to the ZipFile instance. + + + + + + + Specifies whether the Creation, Access, and Modified times for entries + added to the zip file will be emitted in “Windows format” + when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Windows. By default this flag is + true, meaning the Windows-format times are stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to + DateTime.Now. Applications can also explicitly set those times by + calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455, although you probably don't need to know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries + may be able to read only one or the other. DotNetZip can read or write + times in either or both formats. + + + + The times stored are taken from , , and . + + + + The value set here applies to all entries subsequently added to the + ZipFile. + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the archive, a time that is always stored in "DOS format". And, + notwithstanding the names PKWare uses for these time formats, any of them + can be read and written by any computer, on any operating system. But, + there are no guarantees that a program running on Mac or Linux will + gracefully handle a zip file with "Windows" formatted times, or that an + application that does not use DotNetZip but runs on Windows will be able to + handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + This example shows how to save a zip file that contains file timestamps + in a format normally used by Unix. + + using (var zip = new ZipFile()) + { + // produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = false; + zip.EmitTimesInUnixFormatWhenSaving = true; + zip.AddDirectory(directoryToZip, "files"); + zip.Save(outputFile); + } + + + + Using zip As New ZipFile + '' produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = False + zip.EmitTimesInUnixFormatWhenSaving = True + zip.AddDirectory(directoryToZip, "files") + zip.Save(outputFile) + End Using + + + + + + + + + Specifies whether the Creation, Access, and Modified times + for entries added to the zip file will be emitted in "Unix(tm) + format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to DateTime.Now. + Applications can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications + typically use: seconds since January 1, 1970 UTC. Each format can be + stored in an "extra field" in the zip entry when saving the zip + archive. The former uses an extra field with a Header Id of 0x000A, while + the latter uses a header ID of 0x5455, although you probably don't need to + know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries may be + able to read only one or the other. DotNetZip can read or write times in + either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the zip archive, a time that is always stored in "DOS + format". And, notwithstanding the names PKWare uses for these time + formats, any of them can be read and written by any computer, on any + operating system. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle a zip file with "Windows" formatted + times, or that an application that does not use DotNetZip but runs on + Windows will be able to handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + + + + + Indicates whether verbose output is sent to the during AddXxx() and + ReadXxx() operations. + + + + This is a synthetic property. It returns true if the is non-null. + + + + + Returns true if an entry by the given name exists in the ZipFile. + + + the name of the entry to find + true if an entry with the given name exists; otherwise false. + + + + + Indicates whether to perform case-sensitive matching on the filename when + retrieving entries in the zipfile via the string-based indexer. + + + + The default value is false, which means don't do case-sensitive + matching. In other words, retrieving zip["ReadMe.Txt"] is the same as + zip["readme.txt"]. It really makes sense to set this to true only + if you are not running on Windows, which has case-insensitive + filenames. But since this library is not built for non-Windows platforms, + in most cases you should just leave this property alone. + + + + + Indicates whether to ignore duplicate files (report only the first entry) + when loading a zipfile. + + + + The default value is false, which will try to make all files + available (duplicates will have a "copy" suffix appended to their name). + Setting this to true prior to using Initialize to read a + zipfile will prevent this and instead just ignore the duplicates. + + + + + Indicates whether to encode entry filenames and entry comments using Unicode + (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + your ZipFile will encode all filenames and comments using the + IBM437 codepage. This can cause "loss of information" on some filenames, + but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipFile, then adds two files, each with + names of four Chinese characters each, this will result in a duplicate + filename exception. In the case where you add a single file with a name + containing four Chinese characters, calling Extract() on the entry that + has question marks in the filename will result in an exception, because + the question mark is not legal for use within filenames on Windows. These + are just a few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + + When creating a zip file, the default value for the property is . is + safest, in the sense that you will not get an Exception if a pre-ZIP64 + limit is exceeded. + + + + You may set the property at any time before calling Save(). + + + + When reading a zip file via the Zipfile.Read() method, DotNetZip + will properly read ZIP64-endowed zip archives, regardless of the value of + this property. DotNetZip will always read ZIP64 archives. This property + governs only whether DotNetZip will write them. Therefore, when updating + archives, be careful about setting this property after reading an archive + that may use ZIP64 extensions. + + + + An interesting question is, if you have set this property to + AsNecessary, and then successfully saved, does the resulting + archive use ZIP64 extensions or not? To learn this, check the property, after calling Save(). + + + + Have you thought about + donating? + + + + + + + + Indicates whether the archive requires ZIP64 extensions. + + + + + + This property is null (or Nothing in VB) if the archive has + not been saved, and there are fewer than 65334 ZipEntry items + contained in the archive. + + + + The Value is true if any of the following four conditions holds: + the uncompressed size of any entry is larger than 0xFFFFFFFF; the + compressed size of any entry is larger than 0xFFFFFFFF; the relative + offset of any entry within the zip archive is larger than 0xFFFFFFFF; or + there are more than 65534 entries in the archive. (0xFFFFFFFF = + 4,294,967,295). The result may not be known until a Save() is attempted + on the zip archive. The Value of this + property may be set only AFTER one of the Save() methods has been called. + + + + If none of the four conditions holds, and the archive has been saved, then + the Value is false. + + + + A Value of false does not indicate that the zip archive, as saved, + does not use ZIP64. It merely indicates that ZIP64 is not required. An + archive may use ZIP64 even when not required if the property is set to , or if the property is set to and the output stream was not + seekable. Use the property to determine if + the most recent Save() method resulted in an archive that utilized + the ZIP64 extensions. + + + + + + + + + Indicates whether the most recent Save() operation used ZIP64 extensions. + + + + + The use of ZIP64 extensions within an archive is not always necessary, and + for interoperability concerns, it may be desired to NOT use ZIP64 if + possible. The property can be + set to use ZIP64 extensions only when necessary. In those cases, + Sometimes applications want to know whether a Save() actually used ZIP64 + extensions. Applications can query this read-only property to learn + whether ZIP64 has been used in a just-saved ZipFile. + + + + The value is null (or Nothing in VB) if the archive has not + been saved. + + + + Non-null values (HasValue is true) indicate whether ZIP64 + extensions were used during the most recent Save() operation. The + ZIP64 extensions may have been used as required by any particular entry + because of its uncompressed or compressed size, or because the archive is + larger than 4294967295 bytes, or because there are more than 65534 entries + in the archive, or because the UseZip64WhenSaving property was set + to , or because the + UseZip64WhenSaving property was set to and the output stream was not seekable. + The value of this property does not indicate the reason the ZIP64 + extensions were used. + + + + + + + + + Indicates whether the most recent Read() operation read a zip file that uses + ZIP64 extensions. + + + + This property will return null (Nothing in VB) if you've added an entry after reading + the zip file. + + + + + The text encoding to use when writing new entries to the ZipFile, + for those entries that cannot be encoded with the default (IBM437) + encoding; or, the text encoding that was used when reading the entries + from the ZipFile. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zipfile that is + not readable. For best interoperability, either leave alone, or specify it only once, + before adding any entries to the ZipFile instance. There is one + exception to this recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. In other words, if you explicitly specify the codepage when you + create the zipfile, you must explicitly specify the same codepage when + reading the zipfile. + + + + The way you specify the code page to use when reading a zip file varies + depending on the tool or library you use to read the zip. In DotNetZip, + you use a ZipFile.Read() method that accepts an encoding parameter. It + isn't possible with Windows Explorer, as far as I know, to specify an + explicit codepage to use when reading a zip. If you use an incorrect + codepage when reading a zipfile, you will get entries with filenames that + are incorrect, and the incorrect filenames may even contain characters + that are not legal for use within filenames in Windows. Extracting entries + with illegal characters in the filenames will lead to exceptions. It's too + bad, but this is just the way things are with code pages in zip + files. Caveat Emptor. + + + + Example: Suppose you create a zipfile that contains entries with + filenames that have Danish characters. If you use equal to "iso-8859-1" (cp 28591), + the filenames will be correctly encoded in the zip. But, to read that + zipfile correctly, you have to specify the same codepage at the time you + read it. If try to read that zip file with Windows Explorer or another + application that is not flexible with respect to the codepage used to + decode filenames in zipfiles, you will get a filename like "Inf�.txt". + + + + When using DotNetZip to read a zip archive, and the zip archive uses an + arbitrary code page, you must specify the encoding to use before or when + the Zipfile is READ. This means you must use a ZipFile.Read() + method that allows you to specify a System.Text.Encoding parameter. Setting + the ProvisionalAlternateEncoding property after your application has read in + the zip archive will not affect the entry names of entries that have already + been read in. + + + + And now, the exception to the rule described above. One strategy for + specifying the code page for a given zip file is to describe the code page + in a human-readable form in the Zip comment. For example, the comment may + read "Entries in this archive are encoded in the Big5 code page". For + maximum interoperability, the zip comment in this case should be encoded + in the default, IBM437 code page. In this case, the zip comment is + encoded using a different page than the filenames. To do this, Specify + ProvisionalAlternateEncoding to your desired region-specific code + page, once before adding any entries, and then reset + ProvisionalAlternateEncoding to IBM437 before setting the property and calling Save(). + + + + + This example shows how to read a zip file using the Big-5 Chinese code page + (950), and extract each entry in the zip file. For this code to work as + desired, the Zipfile must have been created using the big5 code page + (CP950). This is typical, for example, when using WinRar on a machine with + CP950 set as the default code page. In that case, the names of entries + within the Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did not use + the correct code page in ZipFile.Read(), then names of entries within the + zip archive would not be correctly retrieved. + + using (var zip = ZipFile.Read(zipFileName, System.Text.Encoding.GetEncoding("big5"))) + { + // retrieve and extract an entry using a name encoded with CP950 + zip[MyDesiredEntry].Extract("unpack"); + } + + + + Using zip As ZipFile = ZipFile.Read(ZipToExtract, System.Text.Encoding.GetEncoding("big5")) + ' retrieve and extract an entry using a name encoded with CP950 + zip(MyDesiredEntry).Extract("unpack") + End Using + + + + DefaultEncoding + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + Gets or sets the TextWriter to which status messages are delivered + for the instance. + + + + If the TextWriter is set to a non-null value, then verbose output is sent + to the TextWriter during Add, Read, Save and + Extract operations. Typically, console applications might use + Console.Out and graphical or headless applications might use a + System.IO.StringWriter. The output of this is suitable for viewing + by humans. + + + + + In this example, a console application instantiates a ZipFile, then + sets the StatusMessageTextWriter to Console.Out. At that + point, all verbose status messages for that ZipFile are sent to the + console. + + + + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= System.Console.Out; + // messages are sent to the console during extraction + zip.ExtractAll(); + } + + + + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= System.Console.Out + 'Status Messages will be sent to the console during extraction + zip.ExtractAll() + End Using + + + + In this example, a Windows Forms application instantiates a + ZipFile, then sets the StatusMessageTextWriter to a + StringWriter. At that point, all verbose status messages for that + ZipFile are sent to the StringWriter. + + + + var sw = new System.IO.StringWriter(); + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= sw; + zip.ExtractAll(); + } + Console.WriteLine("{0}", sw.ToString()); + + + + Dim sw as New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= sw + zip.ExtractAll() + End Using + 'Status Messages are now available in sw + + + + + + + Gets or sets the name for the folder to store the temporary file + this library writes when saving a zip archive. + + + + + This library will create a temporary file when saving a Zip archive to a + file. This file is written when calling one of the Save() methods + that does not save to a stream, or one of the SaveSelfExtractor() + methods. + + + + By default, the library will create the temporary file in the directory + specified for the file itself, via the property or via + the method. + + + + Setting this property allows applications to override this default + behavior, so that the library will create the temporary file in the + specified folder. For example, to have the library create the temporary + file in the current working directory, regardless where the ZipFile + is saved, specfy ".". To revert to the default behavior, set this + property to null (Nothing in VB). + + + + When setting the property to a non-null value, the folder specified must + exist; if it does not an exception is thrown. The application should have + write and delete permissions on the folder. The permissions are not + explicitly checked ahead of time; if the application does not have the + appropriate rights, an exception will be thrown at the time Save() + is called. + + + + There is no temporary file created when reading a zip archive. When + saving to a Stream, there is no temporary file created. For example, if + the application is an ASP.NET application and calls Save() + specifying the Response.OutputStream as the output stream, there is + no temporary file created. + + + + + Thrown when setting the property if the directory does not exist. + + + + + + Sets the password to be used on the ZipFile instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + added to the ZipFile, using one of the AddFile, + AddDirectory, AddEntry, or AddItem methods, etc. + When reading a zip archive, this property applies to any entry + subsequently extracted from the ZipFile using one of the Extract + methods on the ZipFile class. + + + + When writing a zip archive, keep this in mind: though the password is set + on the ZipFile object, according to the Zip spec, the "directory" of the + archive - in other words the list of entries or files contained in the archive - is + not encrypted with the password, or protected in any way. If you set the + Password property, the password actually applies to individual entries + that are added to the archive, subsequent to the setting of this property. + The list of filenames in the archive that is eventually created will + appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + One simple way around this limitation is to simply double-wrap sensitive + filenames: Store the files in a zip file, and then store that zip file + within a second, "outer" zip file. If you apply a password to the outer + zip file, then readers will be able to see that the outer zip file + contains an inner zip file. But readers will not be able to read the + directory or file list of the inner zip file. + + + + If you set the password on the ZipFile, and then add a set of files + to the archive, then each entry is encrypted with that password. You may + also want to change the password between adding different entries. If you + set the password, add an entry, then set the password to null + (Nothing in VB), and add another entry, the first entry is + encrypted and the second is not. If you call AddFile(), then set + the Password property, then call ZipFile.Save, the file + added will not be password-protected, and no warning will be generated. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If you set + the password to a null value (Nothing in VB), Encryption is + reset to None. + + + + All of the preceding applies to writing zip archives, in other words when + you use one of the Save methods. To use this property when reading or an + existing ZipFile, do the following: set the Password property on the + ZipFile, then call one of the Extract() overloads on the . In this case, the entry is extracted using the + Password that is specified on the ZipFile instance. If you + have not set the Password property, then the password is + null, and the entry is extracted with no password. + + + + If you set the Password property on the ZipFile, then call + Extract() an entry that has not been encrypted with a password, the + password is not used for that entry, and the ZipEntry is extracted + as normal. In other words, the password is used only if necessary. + + + + The class also has a Password property. It takes precedence + over this property on the ZipFile. Typically, you would use the + per-entry Password when most entries in the zip archive use one password, + and a few entries use a different password. If all entries in the zip + file use the same password, then it is simpler to just set this property + on the ZipFile itself, whether creating a zip archive or extracting + a zip archive. + + + + + + + This example creates a zip file, using password protection for the + entries, and then extracts the entries from the zip file. When creating + the zip file, the Readme.txt file is not protected with a password, but + the other two are password-protected as they are saved. During extraction, + each file is extracted with the appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Password= "!Secret1"; + zip.AddFile("MapToTheSite-7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "!Secret1"; + zip.ExtractAll("extractDir"); + } + + + + + Using zip As New ZipFile + zip.AddFile("ReadMe.txt") + zip.Password = "123456!" + zip.AddFile("MapToTheSite-7440-N49th.png") + zip.Password= "!Secret1"; + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "!Secret1" + zip.ExtractAll("extractDir") + End Using + + + + + + ZipFile.Encryption + ZipEntry.Password + + + + The action the library should take when extracting a file that already + exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting an + entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file + to be extracted does not already exist. + + + + + + + The action the library should take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. + + + + The first problem might occur after having called AddDirectory() on a + directory that contains a Clipper .dbf file; the file is locked by + Clipper and cannot be opened for read by another process. An example of + the second problem might occur when trying to zip a .pst file that is in + use by Microsoft Outlook. Outlook locks a range on the file, which allows + other processes to open the file, but not read it in its entirety. + + + + This property tells DotNetZip what you would like to do in the case of + these errors. The primary options are: ZipErrorAction.Throw to + throw an exception (this is the default behavior if you don't set this + property); ZipErrorAction.Skip to Skip the file for which there + was an error and continue saving; ZipErrorAction.Retry to Retry + the entry that caused the problem; or + ZipErrorAction.InvokeErrorEvent to invoke an event handler. + + + + This property is implicitly set to ZipErrorAction.InvokeErrorEvent + if you add a handler to the event. If you set + this property to something other than + ZipErrorAction.InvokeErrorEvent, then the ZipError + event is implicitly cleared. What it means is you can set one or the + other (or neither), depending on what you want, but you never need to set + both. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified ZipErrorAction to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified error handling action. + + + + If you want to handle any errors that occur with any entry in the zip + file in the same way, then set this property once, before adding any + entries to the zip archive. + + + + If you set this property to ZipErrorAction.Skip and you'd like to + learn which files may have been skipped after a Save(), you can + set the on the ZipFile before + calling Save(). A message will be emitted into that writer for + each skipped file, if any. + + + + + + This example shows how to tell DotNetZip to skip any files for which an + error is generated during the Save(). + + Public Sub SaveZipFile() + Dim SourceFolder As String = "fodder" + Dim DestFile As String = "eHandler.zip" + Dim sw as New StringWriter + Using zipArchive As ZipFile = New ZipFile + ' Tell DotNetZip to skip any files for which it encounters an error + zipArchive.ZipErrorAction = ZipErrorAction.Skip + zipArchive.StatusMessageTextWriter = sw + zipArchive.AddDirectory(SourceFolder) + zipArchive.Save(DestFile) + End Using + ' examine sw here to see any messages + End Sub + + + + + + + + + + The Encryption to use for entries added to the ZipFile. + + + + + Set this when creating a zip archive, or when updating a zip archive. The + specified Encryption is applied to the entries subsequently added to the + ZipFile instance. Applications do not need to set the + Encryption property when reading or extracting a zip archive. + + + + If you set this to something other than EncryptionAlgorithm.None, you + will also need to set the . + + + + As with some other properties on the ZipFile class, like and , setting this + property on a ZipFile instance will cause the specified + EncryptionAlgorithm to be used on all items + that are subsequently added to the ZipFile instance. In other + words, if you set this property after you have added items to the + ZipFile, but before you have called Save(), those items will + not be encrypted or protected with a password in the resulting zip + archive. To get a zip archive with encrypted entries, set this property, + along with the property, before calling + AddFile, AddItem, or AddDirectory (etc.) on the + ZipFile instance. + + + + If you read a ZipFile, you can modify the Encryption on an + encrypted entry, only by setting the Encryption property on the + ZipEntry itself. Setting the Encryption property on the + ZipFile, once it has been created via a call to + ZipFile.Read(), does not affect entries that were previously read. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then calling Save() on the ZipFile does not update the + Encryption used for the entries in the archive. Neither is an + exception thrown. Instead, what happens during the Save() is that + all previously existing entries are copied through to the new zip archive, + with whatever encryption and password that was used when originally + creating the zip archive. Upon re-reading that archive, to extract + entries, applications should use the original password or passwords, if + any. + + + + Suppose an application reads a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then adding new entries (via AddFile(), AddEntry(), etc) + and then calling Save() on the ZipFile does not update the + Encryption on any of the entries that had previously been in the + ZipFile. The Encryption property applies only to the + newly-added entries. + + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other files + use encryption. + + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Encryption= EncryptionAlgorithm.WinZipAes256; + zip.Password= "Top.Secret.No.Peeking!"; + zip.AddFile("7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.Encryption= EncryptionAlgorithm.WinZipAes256 + zip.Password= "Top.Secret.No.Peeking!" + zip.AddFile("ReadMe.txt") + zip.AddFile("7440-N49th.png") + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + ZipFile.Password + ZipEntry.Encryption + + + + A callback that allows the application to specify the compression level + to use for entries subsequently added to the zip archive. + + + + + + With this callback, the DotNetZip library allows the application to + determine whether compression will be used, at the time of the + Save. This may be useful if the application wants to favor + speed over size, and wants to defer the decision until the time of + Save. + + + + Typically applications set the property on + the ZipFile or on each ZipEntry to determine the level of + compression used. This is done at the time the entry is added to the + ZipFile. Setting the property to + Ionic.Zlib.CompressionLevel.None means no compression will be used. + + + + This callback allows the application to defer the decision on the + CompressionLevel to use, until the time of the call to + ZipFile.Save(). The callback is invoked once per ZipEntry, + at the time the data for the entry is being written out as part of a + Save() operation. The application can use whatever criteria it + likes in determining the level to return. For example, an application may + wish that no .mp3 files should be compressed, because they are already + compressed and the extra compression is not worth the CPU time incurred, + and so can return None for all .mp3 entries. + + + + The library determines whether compression will be attempted for an entry + this way: If the entry is a zero length file, or a directory, no + compression is used. Otherwise, if this callback is set, it is invoked + and the CompressionLevel is set to the return value. If this + callback has not been set, then the previously set value for + CompressionLevel is used. + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + Make sure you do not read from this field if you've set the value using + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + If you set this value, make sure you do not accidently use in your code + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + Returns the number of segments used in the most recent Save() operation. + + + + This is normally zero, unless you have set the property. If you have set , and then you save a file, after the call to + Save() completes, you can read this value to learn the number of segments that + were created. + + + If you call Save("Archive.zip"), and it creates 5 segments, then you + will have filesystem files named Archive.z01, Archive.z02, Archive.z03, + Archive.z04, and Archive.zip, and the value of this property will be 5. + + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, + if the entry is larger than the given size. Zero means "always + use parallel deflate", while -1 means "never use parallel + deflate". The default value for this property is 512k. Aside + from the special values of 0 and 1, the minimum value is 65536. + + + + If the entry size cannot be known before compression, as with a + read-forward stream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is not as effective. + + + + Parallel deflate tends to yield slightly less compression when + compared to as single-threaded deflate; this is because the original + data stream is split into multiple independent buffers, each of which + is compressed in parallel. But because they are treated + independently, there is no opportunity to share compression + dictionaries. For that reason, a deflated stream may be slightly + larger when compressed using parallel deflate, as compared to a + traditional single-threaded deflate. Sometimes the increase over the + normal deflate is as much as 5% of the total compressed size. For + larger files it can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when + using Encryption. This is primarily because encryption tends to slow + down the entire pipeline. Also, multi-threaded compression gives less + of an advantage when using lower compression levels, for example . You may have to + perform some tests to determine the best approach for your situation. + + + + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time + before calling ZipFile.Save(). + + + + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Returns the version number on the DotNetZip assembly. + + + + + This property is exposed as a convenience. Callers could also get the + version value by retrieving GetName().Version on the + System.Reflection.Assembly object pointing to the DotNetZip + assembly. But sometimes it is not clear which assembly is being loaded. + This property makes it clear. + + + This static property is primarily useful for diagnostic purposes. + + + + + + Creates a new ZipFile instance, using the specified filename. + + + + + Applications can use this constructor to create a new ZipFile for writing, + or to slurp in an existing zip archive for read and update purposes. + + + + To create a new zip archive, an application can call this constructor, + passing the name of a file that does not exist. The name may be a fully + qualified path. Then the application can add directories or files to the + ZipFile via AddDirectory(), AddFile(), AddItem() + and then write the zip archive to the disk by calling Save(). The + zip file is not actually opened and written to the disk until the + application calls ZipFile.Save(). At that point the new zip file + with the given name is created. + + + + If you won't know the name of the Zipfile until the time you call + ZipFile.Save(), or if you plan to save to a stream (which has no + name), then you should use the no-argument constructor. + + + + The application can also call this constructor to read an existing zip + archive. passing the name of a valid zip file that does exist. But, it's + better form to use the static method, + passing the name of the zip file, because using ZipFile.Read() in + your code communicates very clearly what you are doing. In either case, + the file is then read into the ZipFile instance. The app can then + enumerate the entries or can modify the zip file, for example adding + entries, removing entries, changing comments, and so on. + + + + One advantage to this parameterized constructor: it allows applications to + use the same code to add items to a zip archive, regardless of whether the + zip file exists. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + By the way, since DotNetZip is so easy to use, don't you think you should + donate $5 or $10? + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + This example shows how to create a zipfile, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile() + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save(ZipFileToCreate) + End Using + + + + The filename to use for the new zip archive. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified Encoding. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + This is equivalent to setting the property on the ZipFile + instance after construction. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + The Encoding is used as the default alternate + encoding for entries with filenames or comments that cannot be encoded + with the IBM437 code page. + + + + Create a zip file, without specifying a target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + After instantiating with this constructor and adding entries to the + archive, the application should call or + to save to a file or a + stream, respectively. The application can also set the + property and then call the no-argument method. (This + is the preferred approach for applications that use the library through + COM interop.) If you call the no-argument method + without having set the Name of the ZipFile, either through + the parameterized constructor or through the explicit property , the + Save() will throw, because there is no place to save the file. + + + Instances of the ZipFile class are not multi-thread safe. You may + have multiple threads that each use a distinct ZipFile instance, or + you can synchronize multi-thread access to a single instance. + + + + + This example creates a Zip archive called Backup.zip, containing all the files + in the directory DirectoryToZip. Files within subdirectories are not zipped up. + + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save("Backup.zip"); + } + + + + Using zip As New ZipFile + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save("Backup.zip") + End Using + + + + + + Create a zip file, specifying a text Encoding, but without specifying a + target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified status message writer. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + This version of the constructor allows the caller to pass in a TextWriter, + to which verbose messages will be written during extraction or creation of + the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or headless + application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of ZipFile operations. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + + using (ZipFile zip = new ZipFile("Backup.zip", Console.Out)) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + // Status messages will be written to Console.Out + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(); + } + + + + Using zip As New ZipFile("Backup.zip", Console.Out) + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + ' Status messages will be written to Console.Out + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save() + End Using + + + + The filename to use for the new zip archive. + A TextWriter to use for writing + verbose status messages. + + + + Creates a new ZipFile instance, using the specified name for the + filename, the specified status message writer, and the specified Encoding. + + + + + This constructor works like the ZipFile + constructor that accepts a single string argument. See that + reference for detail on what this constructor does. + + + + This version of the constructor allows the caller to pass in a + TextWriter, and an Encoding. The TextWriter will collect + verbose messages that are generated by the library during extraction or + creation of the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or + headless application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of + ZipFile operations. + + + + The Encoding is used as the default alternate encoding for entries + with filenames or comments that cannot be encoded with the IBM437 code + page. This is a equivalent to setting the property on the ZipFile + instance after construction. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile + instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if fileName refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + A TextWriter to use for writing verbose + status messages. + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Initialize a ZipFile instance by reading in a zip file. + + + + + + This method is primarily useful from COM Automation environments, when + reading or extracting zip files. In COM, it is not possible to invoke + parameterized constructors for a class. A COM Automation application can + update a zip file by using the default (no argument) + constructor, then calling Initialize() to read the contents + of an on-disk zip archive into the ZipFile instance. + + + + .NET applications are encouraged to use the ZipFile.Read() methods + for better clarity. + + + + the name of the existing zip file to read in. + + + + This is an integer indexer into the Zip archive. + + + + + This property is read-only. + + + + Internally, the ZipEntry instances that belong to the + ZipFile are stored in a Dictionary. When you use this + indexer the first time, it creates a read-only + List<ZipEntry> from the Dictionary.Values Collection. + If at any time you modify the set of entries in the ZipFile, + either by adding an entry, removing an entry, or renaming an + entry, a new List will be created, and the numeric indexes for the + remaining entries may be different. + + + + This means you cannot rename any ZipEntry from + inside an enumeration of the zip file. + + + + The index value. + + + + + + The ZipEntry within the Zip archive at the specified index. If the + entry does not exist in the archive, this indexer throws. + + + + + + This is a name-based indexer into the Zip archive. + + + + + This property is read-only. + + + + The property on the ZipFile + determines whether retrieval via this indexer is done via case-sensitive + comparisons. By default, retrieval is not case sensitive. This makes + sense on Windows, in which filesystems are not case sensitive. + + + + Regardless of case-sensitivity, it is not always the case that + this[value].FileName == value. In other words, the FileName + property of the ZipEntry retrieved with this indexer, may or may + not be equal to the index value. + + + + This is because DotNetZip performs a normalization of filenames passed to + this indexer, before attempting to retrieve the item. That normalization + includes: removal of a volume letter and colon, swapping backward slashes + for forward slashes. So, zip["dir1\\entry1.txt"].FileName == + "dir1/entry.txt". + + + + Directory entries in the zip file may be retrieved via this indexer only + with names that have a trailing slash. DotNetZip automatically appends a + trailing slash to the names of any directory entries added to a zip. + + + + + + This example extracts only the entries in a zip file that are .txt files. + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + zip[s1].Extract("textfiles"); + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + Thrown if the caller attempts to assign a non-null value to the indexer. + + + + The name of the file, including any directory path, to retrieve from the + zip. The filename match is not case-sensitive by default; you can use the + property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + The ZipEntry within the Zip archive, given by the specified + filename. If the named entry does not exist in the archive, this indexer + returns null (Nothing in VB). + + + + + + The list of filenames for the entries contained within the zip archive. + + + + According to the ZIP specification, the names of the entries use forward + slashes in pathnames. If you are scanning through the list, you may have + to swap forward slashes for backslashes. + + + + + + This example shows one way to test if a filename is already contained + within a zip archive. + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = new ZipFile(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", + candidate, + zipFileName); + else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", + candidate, + zipFileName); + Console.WriteLine(); + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile.Read(ZipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", _ + candidate, _ + zipFileName) + Else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", _ + candidate, _ + zipFileName) + End If + Console.WriteLine + End Using + + + + + The list of strings for the filenames contained within the Zip archive. + + + + + + Returns the readonly collection of entries in the Zip archive. + + + + + + If there are no entries in the current ZipFile, the value returned is a + non-null zero-element collection. If there are entries in the zip file, + the elements are returned in no particular order. + + + This is the implied enumerator on the ZipFile class. If you use a + ZipFile instance in a context that expects an enumerator, you will + get this collection. + + + + + + + Returns a readonly collection of entries in the Zip archive, sorted by FileName. + + + + If there are no entries in the current ZipFile, the value returned + is a non-null zero-element collection. If there are entries in the zip + file, the elements are returned sorted by the name of the entry. + + + + + This example fills a Windows Forms ListView with the entries in a zip file. + + + using (ZipFile zip = ZipFile.Read(zipFile)) + { + foreach (ZipEntry entry in zip.EntriesSorted) + { + ListViewItem item = new ListViewItem(n.ToString()); + n++; + string[] subitems = new string[] { + entry.FileName.Replace("/","\\"), + entry.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + entry.UncompressedSize.ToString(), + String.Format("{0,5:F0}%", entry.CompressionRatio), + entry.CompressedSize.ToString(), + (entry.UsesEncryption) ? "Y" : "N", + String.Format("{0:X8}", entry.Crc)}; + + foreach (String s in subitems) + { + ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem(); + subitem.Text = s; + item.SubItems.Add(subitem); + } + + this.listView1.Items.Add(item); + } + } + + + + + + + + Returns the number of entries in the Zip archive. + + + + + Removes the given ZipEntry from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + Thrown if the specified ZipEntry does not exist in the ZipFile. + + + + In this example, all entries in the zip archive dating from before + December 31st, 2007, are removed from the archive. This is actually much + easier if you use the RemoveSelectedEntries method. But I needed an + example for RemoveEntry, so here it is. + + String ZipFileToRead = "ArchiveToModify.zip"; + System.DateTime Threshold = new System.DateTime(2007,12,31); + using (ZipFile zip = ZipFile.Read(ZipFileToRead)) + { + var EntriesToRemove = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + { + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e); + } + } + + // actually remove the doomed entries. + foreach (ZipEntry zombie in EntriesToRemove) + zip.RemoveEntry(zombie); + + zip.Comment= String.Format("This zip archive was updated at {0}.", + System.DateTime.Now.ToString("G")); + + // save with a different name + zip.Save("Archive-Updated.zip"); + } + + + + Dim ZipFileToRead As String = "ArchiveToModify.zip" + Dim Threshold As New DateTime(2007, 12, 31) + Using zip As ZipFile = ZipFile.Read(ZipFileToRead) + Dim EntriesToRemove As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e) + End If + Next + + ' actually remove the doomed entries. + Dim zombie As ZipEntry + For Each zombie In EntriesToRemove + zip.RemoveEntry(zombie) + Next + zip.Comment = String.Format("This zip archive was updated at {0}.", DateTime.Now.ToString("G")) + 'save as a different name + zip.Save("Archive-Updated.zip") + End Using + + + + + The ZipEntry to remove from the zip. + + + + + + + + Removes the ZipEntry with the given filename from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + + Thrown if the ZipFile is not updatable. + + + + Thrown if a ZipEntry with the specified filename does not exist in + the ZipFile. + + + + + This example shows one way to remove an entry with a given filename from + an existing zip archive. + + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = ZipFile.Read(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + { + zip.RemoveEntry(candidate); + zip.Comment= String.Format("The file '{0}' has been removed from this archive.", + Candidate); + zip.Save(); + } + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile = ZipFile.Read(zipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + zip.RemoveEntry(candidate) + zip.Comment = String.Format("The file '{0}' has been removed from this archive.", Candidate) + zip.Save + End If + End Using + + + + + The name of the file, including any directory path, to remove from the zip. + The filename match is not case-sensitive by default; you can use the + CaseSensitiveRetrieval property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + + + Closes the read and write streams associated + to the ZipFile, if necessary. + + + + The Dispose() method is generally employed implicitly, via a using(..) {..} + statement. (Using...End Using in VB) If you do not employ a using + statement, insure that your application calls Dispose() explicitly. For + example, in a Powershell application, or an application that uses the COM + interop interface, you must call Dispose() explicitly. + + + + This example extracts an entry selected by name, from the Zip file to the + Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + foreach (ZipEntry e in zip) + { + if (WantThisEntry(e.FileName)) + zip.Extract(e.FileName, Console.OpenStandardOutput()); + } + } // Dispose() is called implicitly here. + + + + Using zip As ZipFile = ZipFile.Read(zipfile) + Dim e As ZipEntry + For Each e In zip + If WantThisEntry(e.FileName) Then + zip.Extract(e.FileName, Console.OpenStandardOutput()) + End If + Next + End Using ' Dispose is implicity called here + + + + + + Disposes any managed resources, if the flag is set, then marks the + instance disposed. This method is typically not called explicitly from + application code. + + + + Applications should call the no-arg Dispose method. + + + + indicates whether the method should dispose streams or not. + + + + + Default size of the buffer used for IO. + + + + + An event handler invoked when a Save() starts, before and after each + entry has been written to the archive, when a Save() completes, and + during other Save events. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + SaveProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Saving_Started + Fired when ZipFile.Save() begins. + + + + + ZipProgressEventType.Saving_BeforeSaveEntry + + Fired within ZipFile.Save(), just before writing data for each + particular entry. + + + + + ZipProgressEventType.Saving_AfterSaveEntry + + Fired within ZipFile.Save(), just after having finished writing data + for each particular entry. + + + + + ZipProgressEventType.Saving_Completed + Fired when ZipFile.Save() has completed. + + + + + ZipProgressEventType.Saving_AfterSaveTempArchive + + Fired after the temporary file has been created. This happens only + when saving to a disk file. This event will not be invoked when + saving to a stream. + + + + + ZipProgressEventType.Saving_BeforeRenameTempArchive + + Fired just before renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterRenameTempArchive + + Fired just after renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterCompileSelfExtractor + + Fired after a self-extracting archive has finished compiling. This + EventType is used only within SaveSelfExtractor(). + + + + + ZipProgressEventType.Saving_BytesRead + + Set during the save of a particular entry, to update progress of the + Save(). When this EventType is set, the BytesTransferred is the + number of bytes that have been read from the source stream. The + TotalBytesToTransfer is the number of bytes in the uncompressed + file. + + + + + + + + + This example uses an anonymous method to handle the + SaveProgress event, by updating a progress bar. + + + progressBar1.Value = 0; + progressBar1.Max = listbox1.Items.Count; + using (ZipFile zip = new ZipFile()) + { + // listbox1 contains a list of filenames + zip.AddFiles(listbox1.Items); + + // do the progress bar: + zip.SaveProgress += (sender, e) => { + if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) { + progressBar1.PerformStep(); + } + }; + + zip.Save(fs); + } + + + + + This example uses a named method as the + SaveProgress event handler, to update the user, in a + console-based application. + + + static bool justHadByteUpdate= false; + public static void SaveProgress(object sender, SaveProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Saving_Started) + Console.WriteLine("Saving: {0}", e.ArchiveName); + + else if (e.EventType == ZipProgressEventType.Saving_Completed) + { + justHadByteUpdate= false; + Console.WriteLine(); + Console.WriteLine("Done: {0}", e.ArchiveName); + } + + else if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine(" Writing: {0} ({1}/{2})", + e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal); + justHadByteUpdate= false; + } + + else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate= true; + } + } + + public static ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) { + zip.SaveProgress += SaveProgress; + zip.AddDirectory(directory); + zip.Save(targetZip); + } + } + + + + + Public Sub ZipUp(ByVal targetZip As String, ByVal directory As String) + Using zip As ZipFile = New ZipFile + AddHandler zip.SaveProgress, AddressOf MySaveProgress + zip.AddDirectory(directory) + zip.Save(targetZip) + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MySaveProgress(ByVal sender As Object, ByVal e As SaveProgressEventArgs) + If (e.EventType Is ZipProgressEventType.Saving_Started) Then + Console.WriteLine("Saving: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_Completed) Then + justHadByteUpdate = False + Console.WriteLine + Console.WriteLine("Done: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_BeforeWriteEntry) Then + If justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine(" Writing: {0} ({1}/{2})", e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal) + justHadByteUpdate = False + + ElseIf (e.EventType Is ZipProgressEventType.Saving_EntryBytesRead) Then + If justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, _ + e.TotalBytesToTransfer, _ + (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + justHadByteUpdate = True + End If + End Sub + + + + + + This is a more complete example of using the SaveProgress + events in a Windows Forms application, with a + Thread object. + + + delegate void SaveEntryProgress(SaveProgressEventArgs e); + delegate void ButtonClick(object sender, EventArgs e); + + public class WorkerOptions + { + public string ZipName; + public string Folder; + public string Encoding; + public string Comment; + public int ZipFlavor; + public Zip64Option Zip64; + } + + private int _progress2MaxFactor; + private bool _saveCanceled; + private long _totalBytesBeforeCompress; + private long _totalBytesAfterCompress; + private Thread _workerThread; + + + private void btnZipup_Click(object sender, EventArgs e) + { + KickoffZipup(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new ButtonClick(this.btnCancel_Click), new object[] { sender, e }); + } + else + { + _saveCanceled = true; + lblStatus.Text = "Canceled..."; + ResetState(); + } + } + + private void KickoffZipup() + { + _folderName = tbDirName.Text; + + if (_folderName == null || _folderName == "") return; + if (this.tbZipName.Text == null || this.tbZipName.Text == "") return; + + // check for existence of the zip file: + if (System.IO.File.Exists(this.tbZipName.Text)) + { + var dlgResult = MessageBox.Show(String.Format("The file you have specified ({0}) already exists." + + " Do you want to overwrite this file?", this.tbZipName.Text), + "Confirmation is Required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlgResult != DialogResult.Yes) return; + System.IO.File.Delete(this.tbZipName.Text); + } + + _saveCanceled = false; + _nFilesCompleted = 0; + _totalBytesAfterCompress = 0; + _totalBytesBeforeCompress = 0; + this.btnOk.Enabled = false; + this.btnOk.Text = "Zipping..."; + this.btnCancel.Enabled = true; + lblStatus.Text = "Zipping..."; + + var options = new WorkerOptions + { + ZipName = this.tbZipName.Text, + Folder = _folderName, + Encoding = "ibm437" + }; + + if (this.comboBox1.SelectedIndex != 0) + { + options.Encoding = this.comboBox1.SelectedItem.ToString(); + } + + if (this.radioFlavorSfxCmd.Checked) + options.ZipFlavor = 2; + else if (this.radioFlavorSfxGui.Checked) + options.ZipFlavor = 1; + else options.ZipFlavor = 0; + + if (this.radioZip64AsNecessary.Checked) + options.Zip64 = Zip64Option.AsNecessary; + else if (this.radioZip64Always.Checked) + options.Zip64 = Zip64Option.Always; + else options.Zip64 = Zip64Option.Never; + + options.Comment = String.Format("Encoding:{0} || Flavor:{1} || ZIP64:{2}\r\nCreated at {3} || {4}\r\n", + options.Encoding, + FlavorToString(options.ZipFlavor), + options.Zip64.ToString(), + System.DateTime.Now.ToString("yyyy-MMM-dd HH:mm:ss"), + this.Text); + + if (this.tbComment.Text != TB_COMMENT_NOTE) + options.Comment += this.tbComment.Text; + + _workerThread = new Thread(this.DoSave); + _workerThread.Name = "Zip Saver thread"; + _workerThread.Start(options); + this.Cursor = Cursors.WaitCursor; + } + + + private void DoSave(Object p) + { + WorkerOptions options = p as WorkerOptions; + try + { + using (var zip1 = new ZipFile()) + { + zip1.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(options.Encoding); + zip1.Comment = options.Comment; + zip1.AddDirectory(options.Folder); + _entriesToZip = zip1.EntryFileNames.Count; + SetProgressBars(); + zip1.SaveProgress += this.zip1_SaveProgress; + + zip1.UseZip64WhenSaving = options.Zip64; + + if (options.ZipFlavor == 1) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.WinFormsApplication); + else if (options.ZipFlavor == 2) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.ConsoleApplication); + else + zip1.Save(options.ZipName); + } + } + catch (System.Exception exc1) + { + MessageBox.Show(String.Format("Exception while zipping: {0}", exc1.Message)); + btnCancel_Click(null, null); + } + } + + + + void zip1_SaveProgress(object sender, SaveProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Saving_AfterWriteEntry: + StepArchiveProgress(e); + break; + case ZipProgressEventType.Saving_EntryBytesRead: + StepEntryProgress(e); + break; + case ZipProgressEventType.Saving_Completed: + SaveCompleted(); + break; + case ZipProgressEventType.Saving_AfterSaveTempArchive: + // this event only occurs when saving an SFX file + TempArchiveSaved(); + break; + } + if (_saveCanceled) + e.Cancel = true; + } + + + + private void StepArchiveProgress(SaveProgressEventArgs e) + { + if (this.progressBar1.InvokeRequired) + { + this.progressBar1.Invoke(new SaveEntryProgress(this.StepArchiveProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + _nFilesCompleted++; + this.progressBar1.PerformStep(); + _totalBytesAfterCompress += e.CurrentEntry.CompressedSize; + _totalBytesBeforeCompress += e.CurrentEntry.UncompressedSize; + + // reset the progress bar for the entry: + this.progressBar2.Value = this.progressBar2.Maximum = 1; + + this.Update(); + } + } + } + + + private void StepEntryProgress(SaveProgressEventArgs e) + { + if (this.progressBar2.InvokeRequired) + { + this.progressBar2.Invoke(new SaveEntryProgress(this.StepEntryProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + if (this.progressBar2.Maximum == 1) + { + // reset + Int64 max = e.TotalBytesToTransfer; + _progress2MaxFactor = 0; + while (max > System.Int32.MaxValue) + { + max /= 2; + _progress2MaxFactor++; + } + this.progressBar2.Maximum = (int)max; + lblStatus.Text = String.Format("{0} of {1} files...({2})", + _nFilesCompleted + 1, _entriesToZip, e.CurrentEntry.FileName); + } + + int xferred = e.BytesTransferred >> _progress2MaxFactor; + + this.progressBar2.Value = (xferred >= this.progressBar2.Maximum) + ? this.progressBar2.Maximum + : xferred; + + this.Update(); + } + } + } + + private void SaveCompleted() + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new MethodInvoker(this.SaveCompleted)); + } + else + { + lblStatus.Text = String.Format("Done, Compressed {0} files, {1:N0}% of original.", + _nFilesCompleted, (100.00 * _totalBytesAfterCompress) / _totalBytesBeforeCompress); + ResetState(); + } + } + + private void ResetState() + { + this.btnCancel.Enabled = false; + this.btnOk.Enabled = true; + this.btnOk.Text = "Zip it!"; + this.progressBar1.Value = 0; + this.progressBar2.Value = 0; + this.Cursor = Cursors.Default; + if (!_workerThread.IsAlive) + _workerThread.Join(); + } + + + + + + + + + + + An event handler invoked before, during, and after the reading of a zip archive. + + + + + Depending on the particular event being signaled, different properties on the + parameter are set. The following table + summarizes the available EventTypes and the conditions under which this + event handler is invoked with a ReadProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Reading_Started + Fired just as ZipFile.Read() begins. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_Completed + Fired when ZipFile.Read() has completed. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_ArchiveBytesRead + Fired while reading, updates the number of bytes read for the entire archive. + Meaningful properties: ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Reading_BeforeReadEntry + Indicates an entry is about to be read from the archive. + Meaningful properties: ArchiveName, EntriesTotal. + + + + + ZipProgressEventType.Reading_AfterReadEntry + Indicates an entry has just been read from the archive. + Meaningful properties: ArchiveName, EntriesTotal, CurrentEntry. + + + + + + + + + + + + + An event handler invoked before, during, and after extraction of + entries in the zip archive. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + ExtractProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Extracting_BeforeExtractAll + + Set when ExtractAll() begins. The ArchiveName, Overwrite, and + ExtractLocation properties are meaningful. + + + + ZipProgressEventType.Extracting_AfterExtractAll + + Set when ExtractAll() has completed. The ArchiveName, Overwrite, + and ExtractLocation properties are meaningful. + + + + + ZipProgressEventType.Extracting_BeforeExtractEntry + + Set when an Extract() on an entry in the ZipFile has begun. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_AfterExtractEntry + + Set when an Extract() on an entry in the ZipFile has completed. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_EntryBytesWritten + + Set within a call to Extract() on an entry in the ZipFile, as data + is extracted for the entry. Properties that are meaningful: + ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite + + Set within a call to Extract() on an entry in the ZipFile, when the + extraction would overwrite an existing file. This event type is used + only when ExtractExistingFileAction on the ZipFile or + ZipEntry is set to InvokeExtractProgressEvent. + + + + + + + + + + private static bool justHadByteUpdate = false; + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if(e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate = true; + } + else if(e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName); + justHadByteUpdate= false; + } + } + + public static ExtractZip(string zipToExtract, string directory) + { + string TargetDirectory= "extract"; + using (var zip = ZipFile.Read(zipToExtract)) { + zip.ExtractProgress += ExtractProgress; + foreach (var e in zip1) + { + e.Extract(TargetDirectory, true); + } + } + } + + + + Public Shared Sub Main(ByVal args As String()) + Dim ZipToUnpack As String = "C1P3SML.zip" + Dim TargetDir As String = "ExtractTest_Extract" + Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir) + Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack) + AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress + Dim e As ZipEntry + For Each e In zip1 + e.Extract(TargetDir, True) + Next + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MyExtractProgress(ByVal sender As Object, ByVal e As ExtractProgressEventArgs) + If (e.EventType = ZipProgressEventType.Extracting_EntryBytesWritten) Then + If ExtractTest.justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + ExtractTest.justHadByteUpdate = True + ElseIf (e.EventType = ZipProgressEventType.Extracting_BeforeExtractEntry) Then + If ExtractTest.justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName) + ExtractTest.justHadByteUpdate = False + End If + End Sub + + + + + + + + + + An event handler invoked before, during, and after Adding entries to a zip archive. + + + + Adding a large number of entries to a zip file can take a long + time. For example, when calling on a + directory that contains 50,000 files, it could take 3 minutes or so. + This event handler allws an application to track the progress of the Add + operation, and to optionally cancel a lengthy Add operation. + + + + + + int _numEntriesToAdd= 0; + int _numEntriesAdded= 0; + void AddProgressHandler(object sender, AddProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Adding_Started: + Console.WriteLine("Adding files to the zip..."); + break; + case ZipProgressEventType.Adding_AfterAddEntry: + _numEntriesAdded++; + Console.WriteLine(String.Format("Adding file {0}/{1} :: {2}", + _numEntriesAdded, _numEntriesToAdd, e.CurrentEntry.FileName)); + break; + case ZipProgressEventType.Adding_Completed: + Console.WriteLine("Added all files"); + break; + } + } + + void CreateTheZip() + { + using (ZipFile zip = new ZipFile()) + { + zip.AddProgress += AddProgressHandler; + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)); + zip.Save(ZipFileToCreate); + } + } + + + + + + Private Sub AddProgressHandler(ByVal sender As Object, ByVal e As AddProgressEventArgs) + Select Case e.EventType + Case ZipProgressEventType.Adding_Started + Console.WriteLine("Adding files to the zip...") + Exit Select + Case ZipProgressEventType.Adding_AfterAddEntry + Console.WriteLine(String.Format("Adding file {0}", e.CurrentEntry.FileName)) + Exit Select + Case ZipProgressEventType.Adding_Completed + Console.WriteLine("Added all files") + Exit Select + End Select + End Sub + + Sub CreateTheZip() + Using zip as ZipFile = New ZipFile + AddHandler zip.AddProgress, AddressOf AddProgressHandler + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)) + zip.Save(ZipFileToCreate); + End Using + End Sub + + + + + + + + + + + + An event that is raised when an error occurs during open or read of files + while saving a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. If you add a handler to this event, + you can handle such errors in your own code. If you don't add a + handler, the library will throw an exception if it encounters an I/O + error during a call to Save(). + + + + Setting a handler implicitly sets to + ZipErrorAction.InvokeErrorEvent. + + + + The handler you add applies to all items that are + subsequently added to the ZipFile instance. If you set this + property after you have added items to the ZipFile, but before you + have called Save(), errors that occur while saving those items + will not cause the error handler to be invoked. + + + + If you want to handle any errors that occur with any entry in the zip + file using the same error handler, then add your error handler once, + before adding any entries to the zip archive. + + + + In the error handler method, you need to set the property on the + ZipErrorEventArgs.CurrentEntry. This communicates back to + DotNetZip what you would like to do with this particular error. Within + an error handler, if you set the ZipEntry.ZipErrorAction property + on the ZipEntry to ZipErrorAction.InvokeErrorEvent or if + you don't set it at all, the library will throw the exception. (It is the + same as if you had set the ZipEntry.ZipErrorAction property on the + ZipEntry to ZipErrorAction.Throw.) If you set the + ZipErrorEventArgs.Cancel to true, the entire Save() will be + canceled. + + + + In the case that you use ZipErrorAction.Skip, implying that + you want to skip the entry for which there's been an error, DotNetZip + tries to seek backwards in the output stream, and truncate all bytes + written on behalf of that particular entry. This works only if the + output stream is seekable. It will not work, for example, when using + ASPNET's Response.OutputStream. + + + + + + + This example shows how to use an event handler to handle + errors during save of the zip file. + + + public static void MyZipError(object sender, ZipErrorEventArgs e) + { + Console.WriteLine("Error saving {0}...", e.FileName); + Console.WriteLine(" Exception: {0}", e.exception); + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user whether he wants to skip this error or not + do + { + Console.Write("Retry, Skip, Throw, or Cancel ? (R/S/T/C) "); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && + response[0]!='S' && response[0]!='s' && + response[0]!='R' && response[0]!='r' && + response[0]!='T' && response[0]!='t' && + response[0]!='C' && response[0]!='c'); + + e.Cancel = (response[0]=='C' || response[0]=='c'); + + if (response[0]=='S' || response[0]=='s') + entry.ZipErrorAction = ZipErrorAction.Skip; + else if (response[0]=='R' || response[0]=='r') + entry.ZipErrorAction = ZipErrorAction.Retry; + else if (response[0]=='T' || response[0]=='t') + entry.ZipErrorAction = ZipErrorAction.Throw; + } + + public void SaveTheFile() + { + string directoryToZip = "fodder"; + string directoryInArchive = "files"; + string zipFileToCreate = "Archive.zip"; + using (var zip = new ZipFile()) + { + // set the event handler before adding any entries + zip.ZipError += MyZipError; + zip.AddDirectory(directoryToZip, directoryInArchive); + zip.Save(zipFileToCreate); + } + } + + + + Private Sub MyZipError(ByVal sender As Object, ByVal e As Ionic.Zip.ZipErrorEventArgs) + ' At this point, the application could prompt the user for an action to take. + ' But in this case, this application will simply automatically skip the file, in case of error. + Console.WriteLine("Zip Error, entry {0}", e.CurrentEntry.FileName) + Console.WriteLine(" Exception: {0}", e.exception) + ' set the desired ZipErrorAction on the CurrentEntry to communicate that to DotNetZip + e.CurrentEntry.ZipErrorAction = Zip.ZipErrorAction.Skip + End Sub + + Public Sub SaveTheFile() + Dim directoryToZip As String = "fodder" + Dim directoryInArchive As String = "files" + Dim zipFileToCreate as String = "Archive.zip" + Using zipArchive As ZipFile = New ZipFile + ' set the event handler before adding any entries + AddHandler zipArchive.ZipError, AddressOf MyZipError + zipArchive.AddDirectory(directoryToZip, directoryInArchive) + zipArchive.Save(zipFileToCreate) + End Using + End Sub + + + + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem. The path can be relative or fully-qualified. + + + + + This method will extract all entries in the ZipFile to the + specified path. + + + + If an extraction of a file from the zip archive would overwrite an + existing file in the filesystem, the action taken is dictated by the + ExtractExistingFile property, which overrides any setting you may have + made on individual ZipEntry instances. By default, if you have not + set that property on the ZipFile instance, the entry will not + be extracted, the existing file will not be overwritten and an + exception will be thrown. To change this, set the property, or use the + overload that allows you to + specify an ExtractExistingFileAction parameter. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use one of the ZipEntry.Extract methods. + + + + This method will send verbose output messages to the , if it is set on the ZipFile + instance. + + + + You may wish to take advantage of the ExtractProgress event. + + + + About timestamps: When extracting a file entry from a zip archive, the + extracted file gets the last modified time of the entry as stored in + the archive. The archive may also store extended file timestamp + information, including last accessed and created times. If these are + present in the ZipEntry, then the extracted file will also get + these times. + + + + A Directory entry is somewhat different. It will get the times as + described for a file entry, but, if there are file entries in the zip + archive that, when extracted, appear in the just-created directory, + then when those file entries are extracted, the last modified and last + accessed times of the directory will change, as a side effect. The + result is that after an extraction of a directory and a number of + files within the directory, the last modified and last accessed + timestamps on the directory will reflect the time that the last file + was extracted into the directory, rather than the time stored in the + zip archive for the directory. + + + + To compensate, when extracting an archive with ExtractAll, + DotNetZip will extract all the file and directory entries as described + above, but it will then make a second pass on the directories, and + reset the times on the directories to reflect what is stored in the + zip archive. + + + + This compensation is performed only within the context of an + ExtractAll. If you call ZipEntry.Extract on a directory + entry, the timestamps on directory in the filesystem will reflect the + times stored in the zip. If you then call ZipEntry.Extract on + a file entry, which is extracted into the directory, the timestamps on + the directory will be updated to the current time. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. The extraction will overwrite any + existing files silently. + + + String TargetDirectory= "unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently; + zip.ExtractAll(TargetDirectory); + } + + + + Dim TargetDirectory As String = "unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently + zip.ExtractAll(TargetDirectory) + End Using + + + + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem, using the specified behavior when extraction would overwrite an + existing file. + + + + + + This method will extract all entries in the ZipFile to the specified + path. For an extraction that would overwrite an existing file, the behavior + is dictated by , which overrides any + setting you may have made on individual ZipEntry instances. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use or one of the similar methods. + + + + Calling this method is equivalent to setting the property and then calling . + + + + This method will send verbose output messages to the + , if it is set on the ZipFile instance. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. It does not overwrite any existing files. + + String TargetDirectory= "c:\\unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite); + } + + + + Dim TargetDirectory As String = "c:\unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite) + End Using + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Reads a zip file archive and returns the instance. + + + + + The stream is read using the default System.Text.Encoding, which is the + IBM437 codepage. + + + + + Thrown if the ZipFile cannot be read. The implementation of this method + relies on System.IO.File.OpenRead, which can throw a variety of exceptions, + including specific exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so on. + + + + The name of the zip archive to open. This can be a fully-qualified or relative + pathname. + + + . + + The instance read from the zip archive. + + + + + Reads a zip file archive from the named filesystem file using the + specified options. + + + + + This version of the Read() method allows the caller to pass + in a TextWriter an Encoding, via an instance of the + ReadOptions class. The ZipFile is read in using the + specified encoding for entries where UTF-8 encoding is not + explicitly specified. + + + + + + + This example shows how to read a zip file using the Big-5 Chinese + code page (950), and extract each entry in the zip file, while + sending status messages out to the Console. + + + + For this code to work as intended, the zipfile must have been + created using the big5 code page (CP950). This is typical, for + example, when using WinRar on a machine with CP950 set as the + default code page. In that case, the names of entries within the + Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did + not use the correct code page in ZipFile.Read(), then names of + entries within the zip archive would not be correctly retrieved. + + + + string zipToExtract = "MyArchive.zip"; + string extractDirectory = "extract"; + var options = new ReadOptions + { + StatusMessageWriter = System.Console.Out, + Encoding = System.Text.Encoding.GetEncoding(950) + }; + using (ZipFile zip = ZipFile.Read(zipToExtract, options)) + { + foreach (ZipEntry e in zip) + { + e.Extract(extractDirectory); + } + } + + + + + Dim zipToExtract as String = "MyArchive.zip" + Dim extractDirectory as String = "extract" + Dim options as New ReadOptions + options.Encoding = System.Text.Encoding.GetEncoding(950) + options.StatusMessageWriter = System.Console.Out + Using zip As ZipFile = ZipFile.Read(zipToExtract, options) + Dim e As ZipEntry + For Each e In zip + e.Extract(extractDirectory) + Next + End Using + + + + + + + + This example shows how to read a zip file using the default + code page, to remove entries that have a modified date before a given threshold, + sending status messages out to a StringWriter. + + + + var options = new ReadOptions + { + StatusMessageWriter = new System.IO.StringWriter() + }; + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip", options)) + { + var Threshold = new DateTime(2007,7,4); + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + // pass 1: mark the entries for removal + var MarkedEntries = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + MarkedEntries.Add(e); + } + // pass 2: actually remove the entry. + foreach (ZipEntry zombie in MarkedEntries) + zip.RemoveEntry(zombie); + zip.Comment = "This archive has been updated."; + zip.Save(); + } + // can now use contents of sw, eg store in an audit log + + + + Dim options as New ReadOptions + options.StatusMessageWriter = New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", options) + Dim Threshold As New DateTime(2007, 7, 4) + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + ' pass 1: mark the entries for removal + Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + MarkedEntries.Add(e) + End If + Next + ' pass 2: actually remove the entry. + Dim zombie As ZipEntry + For Each zombie In MarkedEntries + zip.RemoveEntry(zombie) + Next + zip.Comment = "This archive has been updated." + zip.Save + End Using + ' can now use contents of sw, eg store in an audit log + + + + + Thrown if the zipfile cannot be read. The implementation of + this method relies on System.IO.File.OpenRead, which + can throw a variety of exceptions, including specific + exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so + on. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + The set of options to use when reading the zip file. + + + The ZipFile instance read from the zip archive. + + + + + + + Reads a zip file archive using the specified text encoding, the specified + TextWriter for status messages, and the specified ReadProgress event handler, + and returns the instance. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + An event handler for Read operations. + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + The instance read from the zip archive. + + + + + Reads a zip archive from a stream. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Using this overload, the stream is read using the default + System.Text.Encoding, which is the IBM437 + codepage. If you want to specify the encoding to use when + reading the zipfile content, see + ZipFile.Read(Stream, ReadOptions). This + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + + + + This example shows how to Read zip content from a stream, and + extract one entry into a different stream. In this example, + the filename "NameOfEntryInArchive.doc", refers only to the + name of the entry within the zip archive. A file by that + name is not created in the filesystem. The I/O is done + strictly with the given streams. + + + + using (ZipFile zip = ZipFile.Read(InputStream)) + { + zip.Extract("NameOfEntryInArchive.doc", OutputStream); + } + + + + Using zip as ZipFile = ZipFile.Read(InputStream) + zip.Extract("NameOfEntryInArchive.doc", OutputStream) + End Using + + + + the stream containing the zip data. + + The ZipFile instance read from the stream + + + + + Reads a zip file archive from the given stream using the + specified options. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + the stream containing the zip data. + + + The set of options to use when reading the zip file. + + + + Thrown if the zip archive cannot be read. + + + The ZipFile instance read from the stream. + + + + + + + Reads a zip archive from a stream, using the specified text Encoding, the + specified TextWriter for status messages, + and the specified ReadProgress event handler. + + + + + Reading of zip content begins at the current position in the stream. This + means if you have a stream that concatenates regular data and zip data, if + you position the open, readable stream at the start of the zip data, you + will be able to read the zip archive using this constructor, or any of the + ZipFile constructors that accept a as + input. Some examples of where this might be useful: the zip content is + concatenated at the end of a regular EXE file, as some self-extracting + archives do. (Note: SFX files produced by DotNetZip do not work this + way). Another example might be a stream being read from a database, where + the zip content is embedded within an aggregate stream of data. + + + + the stream containing the zip data. + + + The System.IO.TextWriter to which verbose status messages are written + during operations on the ZipFile. For example, in a console + application, System.Console.Out works, and will get a message for each entry + added to the ZipFile. If the TextWriter is null, no verbose messages + are written. + + + + The text encoding to use when reading entries that do not have the UTF-8 + encoding bit set. Be careful specifying the encoding. If the value you use + here is not the same as the Encoding used when the zip archive was created + (possibly by a different archiver) you will get unexpected results and + possibly exceptions. See the + property for more information. + + + + An event handler for Read operations. + + + an instance of ZipFile + + + + Checks the given file to see if it appears to be a valid zip file. + + + + + Calling this method is equivalent to calling with the testExtract parameter set to false. + + + + The file to check. + true if the file appears to be a zip file. + + + + Checks a file to see if it is a valid zip file. + + + + + This method opens the specified zip file, reads in the zip archive, + verifying the ZIP metadata as it reads. + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a + corrupt file, the the method returns false. This method also returns + false for a file that does not exist. + + + + If is true, as part of its check, this + method reads in the content for each entry, expands it, and checks CRCs. + This provides an additional check beyond verifying the zip header and + directory data. + + + + If is true, and if any of the zip entries + are protected with a password, this method will return false. If you want + to verify a ZipFile that has entries which are protected with a + password, you will need to do that manually. + + + + + The zip file to check. + true if the caller wants to extract each entry. + true if the file contains a valid zip file. + + + + Checks a stream to see if it contains a valid zip archive. + + + + + This method reads the zip archive contained in the specified stream, verifying + the ZIP metadata as it reads. If testExtract is true, this method also extracts + each entry in the archive, dumping all the bits into . + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a corrupt + file, the the method returns false. This method also returns false for a + file that does not exist. + + + + If testExtract is true, this method reads in the content for each + entry, expands it, and checks CRCs. This provides an additional check + beyond verifying the zip header data. + + + + If testExtract is true, and if any of the zip entries are protected + with a password, this method will return false. If you want to verify a + ZipFile that has entries which are protected with a password, you will need + to do that manually. + + + + + + The stream to check. + true if the caller wants to extract each entry. + true if the stream contains a valid zip archive. + + + + Delete file with retry on UnauthorizedAccessException. + + + + + When calling File.Delete() on a file that has been "recently" + created, the call sometimes fails with + UnauthorizedAccessException. This method simply retries the Delete 3 + times with a sleep between tries. + + + + the name of the file to be deleted + + + + Saves the Zip archive to a file, specified by the Name property of the + ZipFile. + + + + + The ZipFile instance is written to storage, typically a zip file + in a filesystem, only when the caller calls Save. In the typical + case, the Save operation writes the zip content to a temporary file, and + then renames the temporary file to the desired name. If necessary, this + method will delete a pre-existing file before the rename. + + + + The property is specified either explicitly, + or implicitly using one of the parameterized ZipFile constructors. For + COM Automation clients, the Name property must be set explicitly, + because COM Automation clients cannot call parameterized constructors. + + + + When using a filesystem file for the Zip output, it is possible to call + Save multiple times on the ZipFile instance. With each + call the zip content is re-written to the same output file. + + + + Data for entries that have been added to the ZipFile instance is + written to the output when the Save method is called. This means + that the input streams for those entries must be available at the time + the application calls Save. If, for example, the application + adds entries with AddEntry using a dynamically-allocated + MemoryStream, the memory stream must not have been disposed + before the call to Save. See the property for more discussion of the + availability requirements of the input stream for an entry, and an + approach for providing just-in-time stream lifecycle management. + + + + + + + + Thrown if you haven't specified a location or stream for saving the zip, + either in the constructor or by setting the Name property, or if you try + to save a regular zip archive to a filename with a .exe extension. + + + + Thrown if or is non-zero, and the number + of segments that would be generated for the spanned zip file during the + save operation exceeds 99. If this happens, you need to increase the + segment size. + + + + + + Save the file to a new zipfile, with the given name. + + + + + This method allows the application to explicitly specify the name of the zip + file when saving. Use this when creating a new zip file, or when + updating a zip archive. + + + + An application can also save a zip archive in several places by calling this + method multiple times in succession, with different filenames. + + + + The ZipFile instance is written to storage, typically a zip file in a + filesystem, only when the caller calls Save. The Save operation writes + the zip content to a temporary file, and then renames the temporary file + to the desired name. If necessary, this method will delete a pre-existing file + before the rename. + + + + + + Thrown if you specify a directory for the filename. + + + + The name of the zip archive to save to. Existing files will + be overwritten with great prejudice. + + + + This example shows how to create and Save a zip file. + + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(@"c:\reports\January"); + zip.Save("January.zip"); + } + + + + Using zip As New ZipFile() + zip.AddDirectory("c:\reports\January") + zip.Save("January.zip") + End Using + + + + + + This example shows how to update a zip file. + + using (ZipFile zip = ZipFile.Read("ExistingArchive.zip")) + { + zip.AddFile("NewData.csv"); + zip.Save("UpdatedArchive.zip"); + } + + + + Using zip As ZipFile = ZipFile.Read("ExistingArchive.zip") + zip.AddFile("NewData.csv") + zip.Save("UpdatedArchive.zip") + End Using + + + + + + + Save the zip archive to the specified stream. + + + + + The ZipFile instance is written to storage - typically a zip file + in a filesystem, but using this overload, the storage can be anything + accessible via a writable stream - only when the caller calls Save. + + + + Use this method to save the zip content to a stream directly. A common + scenario is an ASP.NET application that dynamically generates a zip file + and allows the browser to download it. The application can call + Save(Response.OutputStream) to write a zipfile directly to the + output stream, without creating a zip file on the disk on the ASP.NET + server. + + + + Be careful when saving a file to a non-seekable stream, including + Response.OutputStream. When DotNetZip writes to a non-seekable + stream, the zip archive is formatted in such a way that may not be + compatible with all zip tools on all platforms. It's a perfectly legal + and compliant zip file, but some people have reported problems opening + files produced this way using the Mac OS archive utility. + + + + + + + This example saves the zipfile content into a MemoryStream, and + then gets the array of bytes from that MemoryStream. + + + using (var zip = new Ionic.Zip.ZipFile()) + { + zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; + zip.Password = "VerySecret."; + zip.Encryption = EncryptionAlgorithm.WinZipAes128; + zip.AddFile(sourceFileName); + MemoryStream output = new MemoryStream(); + zip.Save(output); + + byte[] zipbytes = output.ToArray(); + } + + + + + + This example shows a pitfall you should avoid. DO NOT read + from a stream, then try to save to the same stream. DO + NOT DO THIS: + + + + using (var fs = new FileStream(filename, FileMode.Open)) + { + using (var zip = Ionic.Zip.ZipFile.Read(inputStream)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(inputStream); // NO NO NO!! + } + } + + + + Better like this: + + + + using (var zip = Ionic.Zip.ZipFile.Read(filename)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(); // YES! + } + + + + + + The System.IO.Stream to write to. It must be + writable. If you created the ZipFile instance by calling + ZipFile.Read(), this stream must not be the same stream + you passed to ZipFile.Read(). + + + + + Adds to the ZipFile a set of files from the current working directory on + disk, that conform to the specified criteria. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. + + + + Specify the criteria in statements of 3 elements: a noun, an operator, and + a value. Consider the string "name != *.doc" . The noun is "name". The + operator is "!=", implying "Not Equal". The value is "*.doc". That + criterion, in English, says "all files with a name that does not end in + the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; "atime", + "mtime", and "ctime" for last access time, last modfied time, and created + time of the file, respectively; "attributes" (or "attrs") for the file + attributes; "size" (or "length") for the file length (uncompressed), and + "type" for the type of object, either a file or a directory. The + "attributes", "name" and "type" nouns both support = and != as operators. + The "size", "atime", "mtime", and "ctime" nouns support = and !=, and + >, >=, <, <= as well. The times are taken to be expressed in + local time. + + + + Specify values for the file attributes as a string with one or more of the + characters H,R,S,A,I,L in any order, implying file attributes of Hidden, + ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint (symbolic + link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as the + format. If you omit the HH:mm:ss portion, it is assumed to be 00:00:00 + (midnight). + + + + The value for a size criterion is expressed in integer quantities of bytes, + kilobytes (use k or kb after the number), megabytes (m or mb), or gigabytes + (g or gb). + + + + The value for a name is a pattern to match against the filename, potentially + including wildcards. The pattern follows CMD.exe glob rules: * implies one + or more of any character, while ? implies one character. If the name + pattern contains any slashes, it is matched to the entire filename, + including the path; otherwise, it is matched against only the filename + without the path. This means a pattern of "*\*.*" matches all files one + directory level deep, while a pattern of "*.*" matches all files in all + directories. + + + + To specify a name pattern that includes spaces, use single quotes around the + pattern. A pattern of "'* *.*'" will match all files that have spaces in + the filename. The full criteria string for that would be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D (implying + a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND or OR. Using a string + like "name = *.txt AND size >= 100k" for the selectionCriteria retrieves + entries whose names end in .txt, and whose uncompressed size is greater than + or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to group + clauses in the boolean logic. Without parenthesis, the precedence of the + criterion atoms is determined by order of appearance. Unlike the C# + language, the AND conjunction does not take precendence over the logical OR. + This is important only in strings that contain 3 or more criterion atoms. + In other words, "name = *.txt and size > 1000 or attributes = H" implies + "((name = *.txt AND size > 1000) OR attributes = H)" while "attributes = + H OR name = *.txt and size > 1000" evaluates to "((attributes = H OR name + = *.txt) AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to retrieve all + entries that were last updated on 2009 February 14, specify a time range + like so:"mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this to + say: all files updated after 12:00am on February 14th, until 12:00am on + February 15th. You can use the same bracketing approach to specify any time + period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no spaces, it is + treated as a pattern to match for the filename. Therefore a string like "*.xls" + will be equivalent to specifying "name = *.xls". + + + + There is no logic in this method that insures that the file inclusion + criteria are internally consistent. For example, it's possible to specify + criteria that says the file must have a size of less than 100 bytes, as well + as a size that is greater than 1000 bytes. Obviously no file will ever + satisfy such criteria, but this method does not detect such logical + inconsistencies. The caller is responsible for insuring the criteria are + sensible. + + + + Using this method, the file selection does not recurse into + subdirectories, and the full path of the selected files is included in the + entries added into the zip archive. If you don't like these behaviors, + see the other overloads of this method. + + + + + This example zips up all *.csv files in the current working directory. + + using (ZipFile zip = new ZipFile()) + { + // To just match on filename wildcards, + // use the shorthand form of the selectionCriteria string. + zip.AddSelectedFiles("*.csv"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + zip.AddSelectedFiles("*.csv") + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + + Adds to the ZipFile a set of files from the disk that conform to the + specified criteria, optionally recursing into subdirectories. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the current working directory. + + + + Using this method, the full path of the selected files is included in the + entries added into the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files in the current working directory, or any + subdirectory, that are larger than 1mb. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a set of files from a specified directory in the + filesystem, that conform to the specified criteria. + + + + + This method selects files that conform to the specified criteria, from the + the specified directory on disk, and adds them to the ZipFile. The search + does not recurse into subdirectores. + + + + Using this method, the full filesystem path of the files on disk is + reproduced on the entries added to the zip file. If you don't want this + behavior, use one of the other overloads of this method. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files larger than 1mb in the directory + given by "d:\rawdata". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\\rawdata"); + zip.Save(PathToZipArchive); + } + + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\rawdata) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + The name of the directory on the disk from which to select files. + + + + + Adds to the ZipFile a set of files from the specified directory on disk, + that conform to the specified criteria. + + + + + + This method selects files from the the specified disk directory matching + the specified selection criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories. + + + + The full directory structure in the filesystem is reproduced on the + entries added to the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + This example zips up all *.csv files in the "files" directory, or any + subdirectory, that have been saved since 2009 February 14th. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true) + zip.Save(PathToZipArchive) + End Using + + + + + This example zips up all files in the current working + directory, and all its child directories, except those in + the excludethis subdirectory. + + Using Zip As ZipFile = New ZipFile(zipfile) + Zip.AddSelectedFfiles("name != 'excludethis\*.*'", datapath, True) + Zip.Save() + End Using + + + + The criteria for file selection + + + The filesystem path from which to select files. + + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, and using a specified root + path for entries added to the zip archive. + + + + + This method selects files from the specified disk directory matching the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. The search does not recurse + into subdirectories. For details on the syntax for the selectionCriteria + parameter, see . + + + + + + + This example zips up all *.psd files in the "photos" directory that have + been saved since 2009 February 14th, and puts them all in a zip file, + using the directory name of "content" in the zip archive itself. When the + zip archive is unzipped, the folder containing the .psd files will be + named "content". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content") + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, optionally recursing through + subdirectories, and using a specified root path for entries added to the + zip archive. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. If recurseDirectories + is true, files are also selected from subdirectories, and the directory + structure in the filesystem is reproduced in the zip archive, rooted at + the directory specified by directoryOnDisk. For details on the + syntax for the selectionCriteria parameter, see . + + + + + This example zips up all files that are NOT *.pst files, in the current + working directory and any subdirectories. + + + using (ZipFile zip = new ZipFile()) + { + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true) + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + If true, the method also scans subdirectories for files matching the + criteria. + + + + + Updates the ZipFile with a selection of files from the disk that conform + to the specified criteria. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and Updates the ZipFile with those + files, using the specified directory path in the archive. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the directory specified by + directoryOnDisk. For details on the syntax for the + selectionCriteria parameter, see . + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a + real directory in the current filesystem. If the files within the zip + are later extracted, this is the path used for the extracted file. + Passing null (nothing in VB) will use the path on the file name, if + any; in other words it would use directoryOnDisk, plus any + subdirectory. Passing the empty string ("") will insert the item at + the root path within the archive. + + + + If true, the method also scans subdirectories for files matching the criteria. + + + + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example selects all the PhotoShop files from within an archive, and extracts them + to the current working directory. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var PhotoShopFiles = zip1.SelectEntries("*.psd"); + foreach (ZipEntry psd in PhotoShopFiles) + { + psd.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim PhotoShopFiles as ICollection(Of ZipEntry) + PhotoShopFiles = zip1.SelectEntries("*.psd") + Dim psd As ZipEntry + For Each psd In PhotoShopFiles + psd.Extract + Next + End Using + + + the string that specifies which entries to select + a collection of ZipEntry objects that conform to the inclusion spec + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var UpdatedPhotoShopFiles = zip1.SelectEntries("*.psd", "UpdatedFiles"); + foreach (ZipEntry e in UpdatedPhotoShopFiles) + { + // prompt for extract here + if (WantExtract(e.FileName)) + e.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim UpdatedPhotoShopFiles As ICollection(Of ZipEntry) = zip1.SelectEntries("*.psd", "UpdatedFiles") + Dim e As ZipEntry + For Each e In UpdatedPhotoShopFiles + ' prompt for extract here + If Me.WantExtract(e.FileName) Then + e.Extract + End If + Next + End Using + + + the string that specifies which entries to select + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the inclusion spec + + + + Remove entries from the zipfile by specified criteria. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example removes all entries in a zip file that were modified prior to January 1st, 2008. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01"); + // don't forget to save the archive! + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01") + ' do not forget to save the archive! + zip1.Save + End Using + + + the string that specifies which entries to select + the number of entries removed + + + + Remove entries from the zipfile by specified criteria, and within the specified + path in the archive. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents"); + // a call to ZipFile.Save will make the modifications permanent + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents") + ' a call to ZipFile.Save will make the modifications permanent + zip1.Save + End Using + + + + the string that specifies which entries to select + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + the number of entries removed + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the selectionCriteria string, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15"); + } + + + the selection criteria for entries to extract. + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + overwriting any existing files. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15", + ExtractExistingFileAction.OverwriteSilently); + } + + + + the selection criteria for entries to extract. + + + The action to take if extraction would overwrite an existing file. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are selected from the specified directory within the archive, and then + extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + and writes them to the "unpack" directory. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15","unpack"); + } + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. If any of the files to be + extracted already exist, an exception will be thrown. + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + the directory on the disk into which to extract. It will be created + if it does not exist. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all files with an XML extension or with a size larger than 100,000 bytes, + and puts them in the unpack directory. For any files that already exist in + that destination directory, they will not be overwritten. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml or size > 100000", + null, + "unpack", + ExtractExistingFileAction.DontOverwrite); + } + + + + the selection criteria for entries to extract. + + + The directory on the disk into which to extract. It will be created if it does not exist. + + + + The directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + The action to take if extraction would overwrite an existing file. + + + + + + + + Static constructor for ZipFile + + + Code Pages 437 and 1252 for English are same + Code Page 1252 Windows Latin 1 (ANSI) - + Code Page 437 MS-DOS Latin US - + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + Generic IEnumerator support, for use of a ZipFile in an enumeration. + + + + You probably do not want to call GetEnumerator explicitly. Instead + it is implicitly called when you use a loop in C#, or a + For Each loop in VB.NET. + + + + This example reads a zipfile of a given name, then enumerates the + entries in that zip file, and displays the information about each + entry on the Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + bool header = true; + foreach (ZipEntry e in zip) + { + if (header) + { + System.Console.WriteLine("Zipfile: {0}", zip.Name); + System.Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded); + System.Console.WriteLine("BitField: 0x{0:X2}", e.BitField); + System.Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod); + System.Console.WriteLine("\n{1,-22} {2,-6} {3,4} {4,-8} {0}", + "Filename", "Modified", "Size", "Ratio", "Packed"); + System.Console.WriteLine(new System.String('-', 72)); + header = false; + } + + System.Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", + e.FileName, + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + e.UncompressedSize, + e.CompressionRatio, + e.CompressedSize); + + e.Extract(); + } + } + + + + Dim ZipFileToExtract As String = "c:\foo.zip" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + Dim header As Boolean = True + Dim e As ZipEntry + For Each e In zip + If header Then + Console.WriteLine("Zipfile: {0}", zip.Name) + Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded) + Console.WriteLine("BitField: 0x{0:X2}", e.BitField) + Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod) + Console.WriteLine(ChrW(10) & "{1,-22} {2,-6} {3,4} {4,-8} {0}", _ + "Filename", "Modified", "Size", "Ratio", "Packed" ) + Console.WriteLine(New String("-"c, 72)) + header = False + End If + Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", _ + e.FileName, _ + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), _ + e.UncompressedSize, _ + e.CompressionRatio, _ + e.CompressedSize ) + e.Extract + Next + End Using + + + + A generic enumerator suitable for use within a foreach loop. + + + + An IEnumerator, for use of a ZipFile in a foreach construct. + + + + This method is included for COM support. An application generally does not call + this method directly. It is called implicitly by COM clients when enumerating + the entries in the ZipFile instance. In VBScript, this is done with a For Each + statement. In Javascript, this is done with new Enumerator(zipfile). + + + + The IEnumerator over the entries in the ZipFile. + + + + + This class exposes a set of COM-accessible wrappers for static + methods available on the ZipFile class. You don't need this + class unless you are using DotNetZip from a COM environment. + + + + + A wrapper for ZipFile.IsZipFile(string) + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.IsZipFile(string, bool) + + + We cannot use "overloaded" Method names in COM interop. + So, here, we use a unique name. + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.CheckZip(string) + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A COM-friendly wrapper for the static method . + + + The filename to of the zip file to check. + + The password to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A wrapper for ZipFile.FixZipDirectory(string) + + The filename to of the zip file to fix. + + + + A wrapper for ZipFile.LibraryVersion + + + the version number on the DotNetZip assembly, formatted as a string. + + + + + An enum that provides the various encryption algorithms supported by this + library. + + + + + + PkzipWeak implies the use of Zip 2.0 encryption, which is known to be + weak and subvertible. + + + + A note on interoperability: Values of PkzipWeak and None are + specified in PKWARE's zip + specification, and are considered to be "standard". Zip archives + produced using these options will be interoperable with many other zip tools + and libraries, including Windows Explorer. + + + + Values of WinZipAes128 and WinZipAes256 are not part of the Zip + specification, but rather imply the use of a vendor-specific extension from + WinZip. If you want to produce interoperable Zip archives, do not use these + values. For example, if you produce a zip archive using WinZipAes256, you + will be able to open it in Windows Explorer on Windows XP and Vista, but you + will not be able to extract entries; trying this will lead to an "unspecified + error". For this reason, some people have said that a zip archive that uses + WinZip's AES encryption is not actually a zip archive at all. A zip archive + produced this way will be readable with the WinZip tool (Version 11 and + beyond). + + + + There are other third-party tools and libraries, both commercial and + otherwise, that support WinZip's AES encryption. These will be able to read + AES-encrypted zip archives produced by DotNetZip, and conversely applications + that use DotNetZip to read zip archives will be able to read AES-encrypted + archives produced by those tools or libraries. Consult the documentation for + those other tools and libraries to find out if WinZip's AES encryption is + supported. + + + + In case you care: According to the WinZip specification, the + actual AES key used is derived from the via an + algorithm that complies with RFC 2898, using an iteration + count of 1000. The algorithm is sometimes referred to as PBKDF2, which stands + for "Password Based Key Derivation Function #2". + + + + A word about password strength and length: The AES encryption technology is + very good, but any system is only as secure as the weakest link. If you want + to secure your data, be sure to use a password that is hard to guess. To make + it harder to guess (increase its "entropy"), you should make it longer. If + you use normal characters from an ASCII keyboard, a password of length 20 will + be strong enough that it will be impossible to guess. For more information on + that, I'd encourage you to read this + article. + + + + + + + No encryption at all. + + + + + Traditional or Classic pkzip encryption. + + + + + WinZip AES encryption (128 key bits). + + + + + WinZip AES encryption (256 key bits). + + + + + An encryption algorithm that is not supported by DotNetZip. + + + + + Delegate in which the application writes the ZipEntry content for the named entry. + + + The name of the entry that must be written. + The stream to which the entry data should be written. + + + When you add an entry and specify a WriteDelegate, via , the application + code provides the logic that writes the entry data directly into the zip file. + + + + + This example shows how to define a WriteDelegate that obtains a DataSet, and then + writes the XML for the DataSet into the zip archive. There's no need to + save the XML to a disk file first. + + + private void WriteEntry (String filename, Stream output) + { + DataSet ds1 = ObtainDataSet(); + ds1.WriteXml(output); + } + + private void Run() + { + using (var zip = new ZipFile()) + { + zip.AddEntry(zipEntryName, WriteEntry); + zip.Save(zipFileName); + } + } + + + + Private Sub WriteEntry (ByVal filename As String, ByVal output As Stream) + DataSet ds1 = ObtainDataSet() + ds1.WriteXml(stream) + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + + Delegate in which the application opens the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should open the stream for. + + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate in which the application closes the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should close the stream for. + + + The stream to be closed. + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate for the callback by which the application tells the + library the CompressionLevel to use for a file. + + + + + Using this callback, the application can, for example, specify that + previously-compressed files (.mp3, .png, .docx, etc) should use a + CompressionLevel of None, or can set the compression level based + on any other factor. + + + + + + + In an EventArgs type, indicates which sort of progress event is being + reported. + + + There are events for reading, events for saving, and events for + extracting. This enumeration allows a single EventArgs type to be sued to + describe one of multiple subevents. For example, a SaveProgress event is + invoked before, after, and during the saving of a single entry. The value + of an enum with this type, specifies which event is being triggered. The + same applies to Extraction, Reading and Adding events. + + + + + Indicates that a Add() operation has started. + + + + + Indicates that an individual entry in the archive has been added. + + + + + Indicates that a Add() operation has completed. + + + + + Indicates that a Read() operation has started. + + + + + Indicates that an individual entry in the archive is about to be read. + + + + + Indicates that an individual entry in the archive has just been read. + + + + + Indicates that a Read() operation has completed. + + + + + The given event reports the number of bytes read so far + during a Read() operation. + + + + + Indicates that a Save() operation has started. + + + + + Indicates that an individual entry in the archive is about to be written. + + + + + Indicates that an individual entry in the archive has just been saved. + + + + + Indicates that a Save() operation has completed. + + + + + Indicates that the zip archive has been created in a + temporary location during a Save() operation. + + + + + Indicates that the temporary file is about to be renamed to the final archive + name during a Save() operation. + + + + + Indicates that the temporary file is has just been renamed to the final archive + name during a Save() operation. + + + + + Indicates that the self-extracting archive has been compiled + during a Save() operation. + + + + + The given event is reporting the number of source bytes that have run through the compressor so far + during a Save() operation. + + + + + Indicates that an entry is about to be extracted. + + + + + Indicates that an entry has just been extracted. + + + + + Indicates that extraction of an entry would overwrite an existing + filesystem file. You must use + + ExtractExistingFileAction.InvokeExtractProgressEvent in the call + to ZipEntry.Extract() in order to receive this event. + + + + + The given event is reporting the number of bytes written so far for + the current entry during an Extract() operation. + + + + + Indicates that an ExtractAll operation is about to begin. + + + + + Indicates that an ExtractAll operation has completed. + + + + + Indicates that an error has occurred while saving a zip file. + This generally means the file cannot be opened, because it has been + removed, or because it is locked by another process. It can also + mean that the file cannot be Read, because of a range lock conflict. + + + + + Provides information about the progress of a save, read, or extract operation. + This is a base class; you will probably use one of the classes derived from this one. + + + + + The total number of entries to be saved or extracted. + + + + + The name of the last entry saved or extracted. + + + + + In an event handler, set this to cancel the save or extract + operation that is in progress. + + + + + The type of event being reported. + + + + + Returns the archive name associated to this event. + + + + + The number of bytes read or written so far for this entry. + + + + + Total number of bytes that will be read or written for this entry. + This number will be -1 if the value cannot be determined. + + + + + Provides information about the progress of a Read operation. + + + + + Provides information about the progress of a Add operation. + + + + + Provides information about the progress of a save operation. + + + + + Constructor for the SaveProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been saved. + The entry involved in the event. + + + + Number of entries saved so far. + + + + + Provides information about the progress of the extract operation. + + + + + Constructor for the ExtractProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been extracted. + The entry involved in the event. + The location to which entries are extracted. + + + + Number of entries extracted so far. This is set only if the + EventType is Extracting_BeforeExtractEntry or Extracting_AfterExtractEntry, and + the Extract() is occurring witin the scope of a call to ExtractAll(). + + + + + Returns the extraction target location, a filesystem path. + + + + + Provides information about the an error that occurred while zipping. + + + + + Returns the exception that occurred, if any. + + + + + Returns the name of the file that caused the exception, if any. + + + + + Issued when an ZipEntry.ExtractWithPassword() method is invoked + with an incorrect password. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that a read was attempted on a stream, and bad or incomplete data was + received. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when an CRC check fails upon extracting an entry from a zip archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when errors occur saving a self-extracting archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that an operation was attempted on a ZipFile which was not possible + given the state of the instance. For example, if you call Save() on a ZipFile + which has no filename set, you can get this exception. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Base class for all exceptions defined by and throw by the Zip library. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + An enum for the options when extracting an entry would overwrite an existing file. + + + + + This enum describes the actions that the library can take when an + Extract() or ExtractWithPassword() method is called to extract an + entry to a filesystem, and the extraction would overwrite an existing filesystem + file. + + + + + + + Throw an exception when extraction would overwrite an existing file. (For + COM clients, this is a 0 (zero).) + + + + + When extraction would overwrite an existing file, overwrite the file silently. + The overwrite will happen even if the target file is marked as read-only. + (For COM clients, this is a 1.) + + + + + When extraction would overwrite an existing file, don't overwrite the file, silently. + (For COM clients, this is a 2.) + + + + + When extraction would overwrite an existing file, invoke the ExtractProgress + event, using an event type of . In + this way, the application can decide, just-in-time, whether to overwrite the + file. For example, a GUI application may wish to pop up a dialog to allow + the user to choose. You may want to examine the property before making + the decision. If, after your processing in the Extract progress event, you + want to NOT extract the file, set + on the ZipProgressEventArgs.CurrentEntry to DoNotOverwrite. + If you do want to extract the file, set ZipEntry.ExtractExistingFile + to OverwriteSilently. If you want to cancel the Extraction, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + DoNotOverwrite in that a cancel will not extract any further entries, if + there are any. (For COM clients, the value of this enum is a 3.) + + + + + Collects general purpose utility methods. + + + + private null constructor + + + + Utility routine for transforming path names from filesystem format (on Windows that means backslashes) to + a format suitable for use within zipfiles. This means trimming the volume letter and colon (if any) And + swapping backslashes for forward slashes. + + source path. + transformed path + + + + Sanitize paths in zip files. This means making sure that relative paths in a zip file don't go outside + the top directory. Entries like something/../../../../Temp/evil.txt get sanitized to Temp/evil.txt + when extracting + + A path with forward slashes as directory separator + sanitized path + + + + Finds a signature in the zip stream. This is useful for finding + the end of a zip entry, for example, or the beginning of the next ZipEntry. + + + + + Scans through 64k at a time. + + + + If the method fails to find the requested signature, the stream Position + after completion of this method is unchanged. If the method succeeds in + finding the requested signature, the stream position after completion is + direct AFTER the signature found in the stream. + + + + The stream to search + The 4-byte signature to find + The number of bytes read + + + + Create a pseudo-random filename, suitable for use as a temporary + file, and open it. + + + + This method produces a filename of the form + DotNetZip-xxxxxxxx.tmp, where xxxxxxxx is replaced by randomly + chosen characters, and creates that file. + + + + + + Workitem 7889: handle ERROR_LOCK_VIOLATION during read + + + This could be gracefully handled with an extension attribute, but + This assembly used to be built for .NET 2.0, so could not use + extension methods. + + + + + A decorator stream. It wraps another stream, and performs bookkeeping + to keep track of the stream Position. + + + + In some cases, it is not possible to get the Position of a stream, let's + say, on a write-only output stream like ASP.NET's + Response.OutputStream, or on a different write-only stream + provided as the destination for the zip by the application. In this + case, programmers can use this counting stream to count the bytes read + or written. + + + Consider the scenario of an application that saves a self-extracting + archive (SFX), that uses a custom SFX stub. + + + Saving to a filesystem file, the application would open the + filesystem file (getting a FileStream), save the custom sfx stub + into it, and then call ZipFile.Save(), specifying the same + FileStream. ZipFile.Save() does the right thing for the zipentry + offsets, by inquiring the Position of the FileStream before writing + any data, and then adding that initial offset into any ZipEntry + offsets in the zip directory. Everything works fine. + + + Now suppose the application is an ASPNET application and it saves + directly to Response.OutputStream. It's not possible for DotNetZip to + inquire the Position, so the offsets for the SFX will be wrong. + + + The workaround is for the application to use this class to wrap + HttpResponse.OutputStream, then write the SFX stub and the ZipFile + into that wrapper stream. Because ZipFile.Save() can inquire the + Position, it will then do the right thing with the offsets. + + + + + + The constructor. + + The underlying stream + + + + Gets the wrapped stream. + + + + + The count of bytes written out to the stream. + + + + + the count of bytes that have been read from the stream. + + + + + Adjust the byte count on the stream. + + + + the number of bytes to subtract from the count. + + + + + Subtract delta from the count of bytes written to the stream. + This is necessary when seeking back, and writing additional data, + as happens in some cases when saving Zip files. + + + + + + The read method. + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Write data into the stream. + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Whether the stream can be read. + + + + + Whether it is possible to call Seek() on the stream. + + + + + Whether it is possible to call Write() on the stream. + + + + + Flushes the underlying stream. + + + + + The length of the underlying stream. + + + + + Returns the sum of number of bytes written, plus the initial + offset before writing. + + + + + The Position of the stream. + + + + + Seek in the stream. + + the offset point to seek to + the reference point from which to seek + The new position + + + + Set the length of the underlying stream. Be careful with this! + + + the length to set on the underlying stream. + + + + This is a helper class supporting WinZip AES encryption. + This class is intended for use only by the DotNetZip library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the WinZipAesCrypto class. Instead, the WinZipAesCrypto class is + instantiated and used by the ZipEntry() class when WinZip AES + encryption or decryption on an entry is employed. + + + + + A stream that encrypts as it writes, or decrypts as it reads. The + Crypto is AES in CTR (counter) mode, which is compatible with the AES + encryption employed by WinZip 12.0. + + + + The AES/CTR encryption protocol used by WinZip works like this: + + - start with a counter, initialized to zero. + + - to encrypt, take the data by 16-byte blocks. For each block: + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the plaintext to + get the ciphertext. + - compute the mac on the encrypted bytes + - when finished with all blocks, store the computed MAC. + + - to decrypt, take the data by 16-byte blocks. For each block: + - compute the mac on the encrypted bytes, + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the ciphertext to + get the plaintext. + - when finished with all blocks, compare the computed MAC against + the stored MAC + + + + + + + The constructor. + + The underlying stream + To either encrypt or decrypt. + The pre-initialized WinZipAesCrypto object. + The maximum number of bytes to read from the stream. + + + + Returns the final HMAC-SHA1-80 for the data that was encrypted. + + + + + Close the stream. + + + + + Returns true if the stream can be read. + + + + + Always returns false. + + + + + Returns true if the CryptoMode is Encrypt. + + + + + Flush the content in the stream. + + + + + Getting this property throws a NotImplementedException. + + + + + Getting or Setting this property throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This class implements the "traditional" or "classic" PKZip encryption, + which today is considered to be weak. On the other hand it is + ubiquitous. This class is intended for use only by the DotNetZip + library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the ZipCrypto class. Instead, the ZipCrypto class is instantiated and + used by the ZipEntry() class when encryption or decryption on an entry + is employed. If for some reason you really wanted to use a weak + encryption algorithm in some other application, you might use this + library. But you would be much better off using one of the built-in + strong encryption libraries in the .NET Framework, like the AES + algorithm or SHA. + + + + + The default constructor for ZipCrypto. + + + + This class is intended for internal use by the library only. It's + probably not useful to you. Seriously. Stop reading this + documentation. It's a waste of your time. Go do something else. + Check the football scores. Go get an ice cream with a friend. + Seriously. + + + + + + From AppNote.txt: + unsigned char decrypt_byte() + local unsigned short temp + temp :=- Key(2) | 2 + decrypt_byte := (temp * (temp ^ 1)) bitshift-right 8 + end decrypt_byte + + + + + Call this method on a cipher text to render the plaintext. You must + first initialize the cipher with a call to InitCipher. + + + + + var cipher = new ZipCrypto(); + cipher.InitCipher(Password); + // Decrypt the header. This has a side effect of "further initializing the + // encryption keys" in the traditional zip encryption. + byte[] DecryptedMessage = cipher.DecryptMessage(EncryptedMessage); + + + + The encrypted buffer. + + The number of bytes to encrypt. + Should be less than or equal to CipherText.Length. + + + The plaintext. + + + + This is the converse of DecryptMessage. It encrypts the plaintext + and produces a ciphertext. + + + The plain text buffer. + + + The number of bytes to encrypt. + Should be less than or equal to plainText.Length. + + + The ciphertext. + + + + This initializes the cipher with the given password. + See AppNote.txt for details. + + + + The passphrase for encrypting or decrypting with this cipher. + + + + + Step 1 - Initializing the encryption keys + ----------------------------------------- + Start with these keys: + Key(0) := 305419896 (0x12345678) + Key(1) := 591751049 (0x23456789) + Key(2) := 878082192 (0x34567890) + + Then, initialize the keys with a password: + + loop for i from 0 to length(password)-1 + update_keys(password(i)) + end loop + + Where update_keys() is defined as: + + update_keys(char): + Key(0) := crc32(key(0),char) + Key(1) := Key(1) + (Key(0) bitwiseAND 000000ffH) + Key(1) := Key(1) * 134775813 + 1 + Key(2) := crc32(key(2),key(1) rightshift 24) + end update_keys + + Where crc32(old_crc,char) is a routine that given a CRC value and a + character, returns an updated CRC value after applying the CRC-32 + algorithm described elsewhere in this document. + + + + + After the keys are initialized, then you can use the cipher to + encrypt the plaintext. + + + + Essentially we encrypt the password with the keys, then discard the + ciphertext for the password. This initializes the keys for later use. + + + + + + + A Stream for reading and concurrently decrypting data from a zip file, + or for writing and concurrently encrypting data to a zip file. + + + + The constructor. + The underlying stream + To either encrypt or decrypt. + The pre-initialized ZipCrypto object. + + + + Represents a single entry in a ZipFile. Typically, applications get a ZipEntry + by enumerating the entries within a ZipFile, or by adding an entry to a ZipFile. + + + + + True if the referenced entry is a directory. + + + + + Provides a human-readable string with information about the ZipEntry. + + + + + Reads one entry from the zip directory structure in the zip file. + + + + The zipfile for which a directory entry will be read. From this param, the + method gets the ReadStream and the expected text encoding + (ProvisionalAlternateEncoding) which is used if the entry is not marked + UTF-8. + + + + a list of previously seen entry names; used to prevent duplicates. + + + the entry read from the archive. + + + + Returns true if the passed-in value is a valid signature for a ZipDirEntry. + + the candidate 4-byte signature value. + true, if the signature is valid according to the PKWare spec. + + + + Default constructor. + + + Applications should never need to call this directly. It is exposed to + support COM Automation environments. + + + + + The time and date at which the file indicated by the ZipEntry was + last modified. + + + + + The DotNetZip library sets the LastModified value for an entry, equal to + the Last Modified time of the file in the filesystem. If an entry is + added from a stream, the library uses System.DateTime.Now for this + value, for the given entry. + + + + This property allows the application to retrieve and possibly set the + LastModified value on an entry, to an arbitrary value. values with a + setting of DateTimeKind.Unspecified are taken to be expressed as + DateTimeKind.Local. + + + + Be aware that because of the way PKWare's + Zip specification describes how times are stored in the zip file, + the full precision of the System.DateTime datatype is not stored + for the last modified time when saving zip files. For more information on + how times are formatted, see the PKZip specification. + + + + The actual last modified time of a file can be stored in multiple ways in + the zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + Zip tools and libraries will always at least handle (read or write) the + DOS time, and may also handle the other time formats. Keep in mind that + while the names refer to particular operating systems, there is nothing in + the time formats themselves that prevents their use on other operating + systems. + + + + When reading ZIP files, the DotNetZip library reads the Windows-formatted + time, if it is stored in the entry, and sets both LastModified and + ModifiedTime to that value. When writing ZIP files, the DotNetZip + library by default will write both time quantities. It can also emit the + Unix-formatted time if desired (See .) + + + + The last modified time of the file created upon a call to + ZipEntry.Extract() may be adjusted during extraction to compensate + for differences in how the .NET Base Class Library deals with daylight + saving time (DST) versus how the Windows filesystem deals with daylight + saving time. Raymond Chen provides + some good context. + + + + In a nutshell: Daylight savings time rules change regularly. In 2007, for + example, the inception week of DST changed. In 1977, DST was in place all + year round. In 1945, likewise. And so on. Win32 does not attempt to + guess which time zone rules were in effect at the time in question. It + will render a time as "standard time" and allow the app to change to DST + as necessary. .NET makes a different choice. + + + + Compare the output of FileInfo.LastWriteTime.ToString("f") with what you + see in the Windows Explorer property sheet for a file that was last + written to on the other side of the DST transition. For example, suppose + the file was last modified on October 17, 2003, during DST but DST is not + currently in effect. Explorer's file properties reports Thursday, October + 17, 2003, 8:45:38 AM, but .NETs FileInfo reports Thursday, October 17, + 2003, 9:45 AM. + + + + Win32 says, "Thursday, October 17, 2002 8:45:38 AM PST". Note: Pacific + STANDARD Time. Even though October 17 of that year occurred during Pacific + Daylight Time, Win32 displays the time as standard time because that's + what time it is NOW. + + + + .NET BCL assumes that the current DST rules were in place at the time in + question. So, .NET says, "Well, if the rules in effect now were also in + effect on October 17, 2003, then that would be daylight time" so it + displays "Thursday, October 17, 2003, 9:45 AM PDT" - daylight time. + + + + So .NET gives a value which is more intuitively correct, but is also + potentially incorrect, and which is not invertible. Win32 gives a value + which is intuitively incorrect, but is strictly correct. + + + + Because of this funkiness, this library adds one hour to the LastModified + time on the extracted file, if necessary. That is to say, if the time in + question had occurred in what the .NET Base Class Library assumed to be + DST. This assumption may be wrong given the constantly changing DST rules, + but it is the best we can do. + + + + + + + + Ability to set Last Modified DOS time to zero + (for using with EmitTimesInWindowsFormatWhenSaving+EmitTimesInUnixFormatWhenSaving setted to false) + some flasher hardware use as marker of first binary + + + + + Last Modified time for the file represented by the entry. + + + + + + This value corresponds to the "last modified" time in the NTFS file times + as described in the Zip + specification. When getting this property, the value may be + different from . When setting the property, + the property also gets set, but with a lower + precision. + + + + Let me explain. It's going to take a while, so get + comfortable. Originally, waaaaay back in 1989 when the ZIP specification + was originally described by the esteemed Mr. Phil Katz, the dominant + operating system of the time was MS-DOS. MSDOS stored file times with a + 2-second precision, because, c'mon, who is ever going to need better + resolution than THAT? And so ZIP files, regardless of the platform on + which the zip file was created, store file times in exactly the same format that DOS used + in 1989. + + + + Since then, the ZIP spec has evolved, but the internal format for file + timestamps remains the same. Despite the fact that the way times are + stored in a zip file is rooted in DOS heritage, any program on any + operating system can format a time in this way, and most zip tools and + libraries DO - they round file times to the nearest even second and store + it just like DOS did 25+ years ago. + + + + PKWare extended the ZIP specification to allow a zip file to store what + are called "NTFS Times" and "Unix(tm) times" for a file. These are the + last write, last access, and file creation + times of a particular file. These metadata are not actually specific + to NTFS or Unix. They are tracked for each file by NTFS and by various + Unix filesystems, but they are also tracked by other filesystems, too. + The key point is that the times are formatted in the zip file + in the same way that NTFS formats the time (ticks since win32 epoch), + or in the same way that Unix formats the time (seconds since Unix + epoch). As with the DOS time, any tool or library running on any + operating system is capable of formatting a time in one of these ways + and embedding it into the zip file. + + + + These extended times are higher precision quantities than the DOS time. + As described above, the (DOS) LastModified has a precision of 2 seconds. + The Unix time is stored with a precision of 1 second. The NTFS time is + stored with a precision of 0.0000001 seconds. The quantities are easily + convertible, except for the loss of precision you may incur. + + + + A zip archive can store the {C,A,M} times in NTFS format, in Unix format, + or not at all. Often a tool running on Unix or Mac will embed the times + in Unix format (1 second precision), while WinZip running on Windows might + embed the times in NTFS format (precision of of 0.0000001 seconds). When + reading a zip file with these "extended" times, in either format, + DotNetZip represents the values with the + ModifiedTime, AccessedTime and CreationTime + properties on the ZipEntry. + + + + While any zip application or library, regardless of the platform it + runs on, could use any of the time formats allowed by the ZIP + specification, not all zip tools or libraries do support all these + formats. Storing the higher-precision times for each entry is + optional for zip files, and many tools and libraries don't use the + higher precision quantities at all. The old DOS time, represented by + , is guaranteed to be present, though it + sometimes unset. + + + + Ok, getting back to the question about how the LastModified + property relates to this ModifiedTime + property... LastModified is always set, while + ModifiedTime is not. (The other times stored in the NTFS + times extension, CreationTime and AccessedTime also + may not be set on an entry that is read from an existing zip file.) + When reading a zip file, then LastModified takes the DOS time + that is stored with the file. If the DOS time has been stored as zero + in the zipfile, then this library will use DateTime.Now for the + LastModified value. If the ZIP file was created by an evolved + tool, then there will also be higher precision NTFS or Unix times in + the zip file. In that case, this library will read those times, and + set LastModified and ModifiedTime to the same value, the + one corresponding to the last write time of the file. If there are no + higher precision times stored for the entry, then ModifiedTime + remains unset (likewise AccessedTime and CreationTime), + and LastModified keeps its DOS time. + + + + When creating zip files with this library, by default the extended time + properties (ModifiedTime, AccessedTime, and + CreationTime) are set on the ZipEntry instance, and these data are + stored in the zip archive for each entry, in NTFS format. If you add an + entry from an actual filesystem file, then the entry gets the actual file + times for that file, to NTFS-level precision. If you add an entry from a + stream, or a string, then the times get the value DateTime.Now. In + this case LastModified and ModifiedTime will be identical, + to 2 seconds of precision. You can explicitly set the + CreationTime, AccessedTime, and ModifiedTime of an + entry using the property setters. If you want to set all of those + quantities, it's more efficient to use the method. Those + changes are not made permanent in the zip file until you call or one of its cousins. + + + + When creating a zip file, you can override the default behavior of + this library for formatting times in the zip file, disabling the + embedding of file times in NTFS format or enabling the storage of file + times in Unix format, or both. You may want to do this, for example, + when creating a zip file on Windows, that will be consumed on a Mac, + by an application that is not hip to the "NTFS times" format. To do + this, use the and + properties. A valid zip + file may store the file times in both formats. But, there are no + guarantees that a program running on Mac or Linux will gracefully + handle the NTFS-formatted times when Unix times are present, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. DotNetZip will always do something + reasonable; other libraries or tools may not. When in doubt, test. + + + + I'll bet you didn't think one person could type so much about time, eh? + And reading it was so enjoyable, too! Well, in appreciation, maybe you + should donate? + + + + + + + + + + + Last Access time for the file represented by the entry. + + + This value may or may not be meaningful. If the ZipEntry was read from an existing + Zip archive, this information may not be available. For an explanation of why, see + . + + + + + + + + The file creation time for the file represented by the entry. + + + + This value may or may not be meaningful. If the ZipEntry was read + from an existing zip archive, and the creation time was not set on the entry + when the zip file was created, then this property may be meaningless. For an + explanation of why, see . + + + + + + + + Sets the NTFS Creation, Access, and Modified times for the given entry. + + + + + When adding an entry from a file or directory, the Creation, Access, and + Modified times for the given entry are automatically set from the + filesystem values. When adding an entry from a stream or string, the + values are implicitly set to DateTime.Now. The application may wish to + set these values to some arbitrary value, before saving the archive, and + can do so using the various setters. If you want to set all of the times, + this method is more efficient. + + + + The values you set here will be retrievable with the , and properties. + + + + When this method is called, if both and are false, then the + EmitTimesInWindowsFormatWhenSaving flag is automatically set. + + + + DateTime values provided here without a DateTimeKind are assumed to be Local Time. + + + + the creation time of the entry. + the last access time of the entry. + the last modified time of the entry. + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Windows format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Windows. The default value of + this property is true. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all zip tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInWindowsFormatWhenSaving + property, to specify the behavior for all entries in a zip, rather than + the property on each individual entry. + + + + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Unix(tm) format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since Jan 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInUnixFormatWhenSaving + property, to specify the behavior for all entries, rather than the + property on each individual entry. + + + + + + + + + + + + + The type of timestamp attached to the ZipEntry. + + + + This property is valid only for a ZipEntry that was read from a zip archive. + It indicates the type of timestamp attached to the entry. + + + + + + + + The file attributes for the entry. + + + + + + The attributes in NTFS include + ReadOnly, Archive, Hidden, System, and Indexed. When adding a + ZipEntry to a ZipFile, these attributes are set implicitly when + adding an entry from the filesystem. When adding an entry from a stream + or string, the Attributes are not set implicitly. Regardless of the way + an entry was added to a ZipFile, you can set the attributes + explicitly if you like. + + + + When reading a ZipEntry from a ZipFile, the attributes are + set according to the data stored in the ZipFile. If you extract the + entry from the archive to a filesystem file, DotNetZip will set the + attributes on the resulting file accordingly. + + + + The attributes can be set explicitly by the application. For example the + application may wish to set the FileAttributes.ReadOnly bit for all + entries added to an archive, so that on unpack, this attribute will be set + on the extracted file. Any changes you make to this property are made + permanent only when you call a Save() method on the ZipFile + instance that contains the ZipEntry. + + + + For example, an application may wish to zip up a directory and set the + ReadOnly bit on every file in the archive, so that upon later extraction, + the resulting files will be marked as ReadOnly. Not every extraction tool + respects these attributes, but if you unpack with DotNetZip, as for + example in a self-extracting archive, then the attributes will be set as + they are stored in the ZipFile. + + + + These attributes may not be interesting or useful if the resulting archive + is extracted on a non-Windows platform. How these attributes get used + upon extraction depends on the platform and tool used. + + + + + + + The name of the filesystem file, referred to by the ZipEntry. + + + + + This property specifies the thing-to-be-zipped on disk, and is set only + when the ZipEntry is being created from a filesystem file. If the + ZipFile is instantiated by reading an existing .zip archive, then + the LocalFileName will be null (Nothing in VB). + + + + When it is set, the value of this property may be different than , which is the path used in the archive itself. If you + call Zip.AddFile("foop.txt", AlternativeDirectory), then the path + used for the ZipEntry within the zip archive will be different + than this path. + + + + If the entry is being added from a stream, then this is null (Nothing in VB). + + + + + + + + The name of the file contained in the ZipEntry. + + + + + + This is the name of the entry in the ZipFile itself. When creating + a zip archive, if the ZipEntry has been created from a filesystem + file, via a call to or , or a related overload, the value + of this property is derived from the name of that file. The + FileName property does not include drive letters, and may include a + different directory path, depending on the value of the + directoryPathInArchive parameter used when adding the entry into + the ZipFile. + + + + In some cases there is no related filesystem file - for example when a + ZipEntry is created using or one of the similar overloads. In this case, the value of + this property is derived from the fileName and the directory path passed + to that method. + + + + When reading a zip file, this property takes the value of the entry name + as stored in the zip file. If you extract such an entry, the extracted + file will take the name given by this property. + + + + Applications can set this property when creating new zip archives or when + reading existing archives. When setting this property, the actual value + that is set will replace backslashes with forward slashes, in accordance + with the Zip + specification, for compatibility with Unix(tm) and ... get + this.... Amiga! + + + + If an application reads a ZipFile via or a related overload, and then explicitly + sets the FileName on an entry contained within the ZipFile, and + then calls , the application will effectively + rename the entry within the zip archive. + + + + If an application sets the value of FileName, then calls + Extract() on the entry, the entry is extracted to a file using the + newly set value as the filename. The FileName value is made + permanent in the zip archive only after a call to one of the + ZipFile.Save() methods on the ZipFile that contains the + ZipEntry. + + + + If an application attempts to set the FileName to a value that + would result in a duplicate entry in the ZipFile, an exception is + thrown. + + + + When a ZipEntry is contained within a ZipFile, applications + cannot rename the entry within the context of a foreach (For + Each in VB) loop, because of the way the ZipFile stores + entries. If you need to enumerate through all the entries and rename one + or more of them, use ZipFile.EntriesSorted as the + collection. See also, ZipFile.GetEnumerator(). + + + + + + + The stream that provides content for the ZipEntry. + + + + + + The application can use this property to set the input stream for an + entry on a just-in-time basis. Imagine a scenario where the application + creates a ZipFile comprised of content obtained from hundreds of + files, via calls to AddFile(). The DotNetZip library opens streams + on these files on a just-in-time basis, only when writing the entry out to + an external store within the scope of a ZipFile.Save() call. Only + one input stream is opened at a time, as each entry is being written out. + + + + Now imagine a different application that creates a ZipFile + with content obtained from hundreds of streams, added through . Normally the + application would supply an open stream to that call. But when large + numbers of streams are being added, this can mean many open streams at one + time, unnecessarily. + + + + To avoid this, call and specify delegates that open and close the stream at + the time of Save. + + + + + Setting the value of this property when the entry was not added from a + stream (for example, when the ZipEntry was added with or , or when the entry was added by + reading an existing zip archive) will throw an exception. + + + + + + + + A flag indicating whether the InputStream was provided Just-in-time. + + + + + + When creating a zip archive, an application can obtain content for one or + more of the ZipEntry instances from streams, using the method. At the time + of calling that method, the application can supply null as the value of + the stream parameter. By doing so, the application indicates to the + library that it will provide a stream for the entry on a just-in-time + basis, at the time one of the ZipFile.Save() methods is called and + the data for the various entries are being compressed and written out. + + + + In this case, the application can set the + property, typically within the SaveProgress event (event type: ) for that entry. + + + + The application will later want to call Close() and Dispose() on that + stream. In the SaveProgress event, when the event type is , the application can + do so. This flag indicates that the stream has been provided by the + application on a just-in-time basis and that it is the application's + responsibility to call Close/Dispose on that stream. + + + + + + + + An enum indicating the source of the ZipEntry. + + + + + The version of the zip engine needed to read the ZipEntry. + + + + + This is a readonly property, indicating the version of
the Zip + specification that the extracting tool or library must support to + extract the given entry. Generally higher versions indicate newer + features. Older zip engines obviously won't know about new features, and + won't be able to extract entries that depend on those newer features. + + + + + value + Features + + + + 20 + a basic Zip Entry, potentially using PKZIP encryption. + + + + + 45 + The ZIP64 extension is used on the entry. + + + + + 46 + File is compressed using BZIP2 compression* + + + + 50 + File is encrypted using PkWare's DES, 3DES, (broken) RC2 or RC4 + + + + 51 + File is encrypted using PKWare's AES encryption or corrected RC2 encryption. + + + + 52 + File is encrypted using corrected RC2-64 encryption** + + + + 61 + File is encrypted using non-OAEP key wrapping*** + + + + 63 + File is compressed using LZMA, PPMd+, Blowfish, or Twofish + + + + + + There are other values possible, not listed here. DotNetZip supports + regular PKZip encryption, and ZIP64 extensions. DotNetZip cannot extract + entries that require a zip engine higher than 45. + + + + This value is set upon reading an existing zip file, or after saving a zip + archive. + + + + + + The comment attached to the ZipEntry. + + + + + Each entry in a zip file can optionally have a comment associated to + it. The comment might be displayed by a zip tool during extraction, for + example. + + + + By default, the Comment is encoded in IBM437 code page. You can + specify an alternative with and + . + + + + + + + + Indicates whether the entry requires ZIP64 extensions. + + + + + + This property is null (Nothing in VB) until a Save() method on the + containing instance has been called. The property is + non-null (HasValue is true) only after a Save() method has + been called. + + + + After the containing ZipFile has been saved, the Value of this + property is true if any of the following three conditions holds: the + uncompressed size of the entry is larger than 0xFFFFFFFF; the compressed + size of the entry is larger than 0xFFFFFFFF; the relative offset of the + entry within the zip archive is larger than 0xFFFFFFFF. These quantities + are not known until a Save() is attempted on the zip archive and + the compression is applied. + + + + If none of the three conditions holds, then the Value is false. + + + + A Value of false does not indicate that the entry, as saved in the + zip archive, does not use ZIP64. It merely indicates that ZIP64 is + not required. An entry may use ZIP64 even when not required if + the property on the containing + ZipFile instance is set to , or if + the property on the containing + ZipFile instance is set to + and the output stream was not seekable. + + + + + + + + Indicates whether the entry actually used ZIP64 extensions, as it was most + recently written to the output file or stream. + + + + + + This Nullable property is null (Nothing in VB) until a Save() + method on the containing instance has been + called. HasValue is true only after a Save() method has been + called. + + + + The value of this property for a particular ZipEntry may change + over successive calls to Save() methods on the containing ZipFile, + even if the file that corresponds to the ZipEntry does not. This + may happen if other entries contained in the ZipFile expand, + causing the offset for this particular entry to exceed 0xFFFFFFFF. + + + + + + + The bitfield for the entry as defined in the zip spec. You probably + never need to look at this. + + + + + You probably do not need to concern yourself with the contents of this + property, but in case you do: + + + + + bit + meaning + + + + 0 + set if encryption is used. + + + + 1-2 + + set to determine whether normal, max, fast deflation. DotNetZip library + always leaves these bits unset when writing (indicating "normal" + deflation"), but can read an entry with any value here. + + + + + 3 + + Indicates that the Crc32, Compressed and Uncompressed sizes are zero in the + local header. This bit gets set on an entry during writing a zip file, when + it is saved to a non-seekable output stream. + + + + + + 4 + reserved for "enhanced deflating". This library doesn't do enhanced deflating. + + + + 5 + set to indicate the zip is compressed patched data. This library doesn't do that. + + + + 6 + + set if PKWare's strong encryption is used (must also set bit 1 if bit 6 is + set). This bit is not set if WinZip's AES encryption is set. + + + + 7 + not used + + + + 8 + not used + + + + 9 + not used + + + + 10 + not used + + + + 11 + + Language encoding flag (EFS). If this bit is set, the filename and comment + fields for this file must be encoded using UTF-8. This library currently + does not support UTF-8. + + + + + 12 + Reserved by PKWARE for enhanced compression. + + + + 13 + + Used when encrypting the Central Directory to indicate selected data + values in the Local Header are masked to hide their actual values. See + the section in the Zip + specification describing the Strong Encryption Specification for + details. + + + + + 14 + Reserved by PKWARE. + + + + 15 + Reserved by PKWARE. + + + + + + + + + The compression method employed for this ZipEntry. + + + + + + The + Zip specification allows a variety of compression methods. This + library supports just two: 0x08 = Deflate. 0x00 = Store (no compression), + for reading or writing. + + + + When reading an entry from an existing zipfile, the value you retrieve + here indicates the compression method used on the entry by the original + creator of the zip. When writing a zipfile, you can specify either 0x08 + (Deflate) or 0x00 (None). If you try setting something else, you will get + an exception. + + + + You may wish to set CompressionMethod to CompressionMethod.None (0) + when zipping already-compressed data like a jpg, png, or mp3 file. + This can save time and cpu cycles. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionMethod to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionLevel property. If you set the CompressionMethod to a + value other than None, and CompressionLevel is previously + set to None, then CompressionLevel will be set to + Default. + + + + + + + In this example, the first entry added to the zip archive uses the default + behavior - compression is used where it makes sense. The second entry, + the MP3 file, is added to the archive without being compressed. + + using (ZipFile zip = new ZipFile(ZipFileToCreate)) + { + ZipEntry e1= zip.AddFile(@"notes\Readme.txt"); + ZipEntry e2= zip.AddFile(@"music\StopThisTrain.mp3"); + e2.CompressionMethod = CompressionMethod.None; + zip.Save(); + } + + + + Using zip As New ZipFile(ZipFileToCreate) + zip.AddFile("notes\Readme.txt") + Dim e2 as ZipEntry = zip.AddFile("music\StopThisTrain.mp3") + e2.CompressionMethod = CompressionMethod.None + zip.Save + End Using + + + + + + Sets the compression level to be used for the entry when saving the zip + archive. This applies only for CompressionMethod = DEFLATE. + + + + + When using the DEFLATE compression method, Varying the compression + level used on entries can affect the size-vs-speed tradeoff when + compression and decompressing data streams or files. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionLevel to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionMethod property. If you set the CompressionLevel + to a value other than None, CompressionMethod will be set + to Deflate, if it was previously None. + + + + Setting this property has no effect if the CompressionMethod is something + other than Deflate or None. + + + + + + + + The compressed size of the file, in bytes, within the zip archive. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the compressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The size of the file, in bytes, before compression, or after extraction. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the uncompressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The ratio of compressed size to uncompressed size of the ZipEntry. + + + + + This is a ratio of the compressed size to the uncompressed size of the + entry, expressed as a double in the range of 0 to 100+. A value of 100 + indicates no compression at all. It could be higher than 100 when the + compression algorithm actually inflates the data, as may occur for small + files, or uncompressible data that is encrypted. + + + + You could format it for presentation to a user via a format string of + "{3,5:F0}%" to see it as a percentage. + + + + If the size of the original uncompressed file is 0, implying a + denominator of 0, the return value will be zero. + + + + This property is valid after reading in an existing zip file, or after + saving the ZipFile that contains the ZipEntry. You cannot know the + effect of a compression transform until you try it. + + + + + + + The 32-bit CRC (Cyclic Redundancy Check) on the contents of the ZipEntry. + + + + + You probably don't need to concern yourself with this. It is used + internally by DotNetZip to verify files or streams upon extraction. + + The value is a 32-bit + CRC using 0xEDB88320 for the polynomial. This is the same CRC-32 used in + PNG, MPEG-2, and other protocols and formats. It is a read-only property; when + creating a Zip archive, the CRC for each entry is set only after a call to + Save() on the containing ZipFile. When reading an existing zip file, the value + of this property reflects the stored CRC for the entry. + + + + + + True if the entry is a directory (not a file). + This is a readonly property on the entry. + + + + + A derived property that is true if the entry uses encryption. + + + + + This is a readonly property on the entry. When reading a zip file, + the value for the ZipEntry is determined by the data read + from the zip file. After saving a ZipFile, the value of this + property for each ZipEntry indicates whether encryption was + actually used (which will have been true if the was set and the property + was something other than . + + + + + + Set this to specify which encryption algorithm to use for the entry when + saving it to a zip archive. + + + + + + Set this property in order to encrypt the entry when the ZipFile is + saved. When setting this property, you must also set a on the entry. If you set a value other than on this property and do not set a + Password then the entry will not be encrypted. The ZipEntry + data is encrypted as the ZipFile is saved, when you call or one of its cousins on the containing + ZipFile instance. You do not need to specify the Encryption + when extracting entries from an archive. + + + + The Zip specification from PKWare defines a set of encryption algorithms, + and the data formats for the zip archive that support them, and PKWare + supports those algorithms in the tools it produces. Other vendors of tools + and libraries, such as WinZip or Xceed, typically support a + subset of the algorithms specified by PKWare. These tools can + sometimes support additional different encryption algorithms and data + formats, not specified by PKWare. The AES Encryption specified and + supported by WinZip is the most popular example. This library supports a + subset of the complete set of algorithms specified by PKWare and other + vendors. + + + + There is no common, ubiquitous multi-vendor standard for strong encryption + within zip files. There is broad support for so-called "traditional" Zip + encryption, sometimes called Zip 2.0 encryption, as specified + by PKWare, but this encryption is considered weak and + breakable. This library currently supports the Zip 2.0 "weak" encryption, + and also a stronger WinZip-compatible AES encryption, using either 128-bit + or 256-bit key strength. If you want DotNetZip to support an algorithm + that is not currently supported, call the author of this library and maybe + we can talk business. + + + + The class also has a property. In most cases you will use + that property when setting encryption. This property takes + precedence over any Encryption set on the ZipFile itself. + Typically, you would use the per-entry Encryption when most entries in the + zip archive use one encryption algorithm, and a few entries use a + different one. If all entries in the zip file use the same Encryption, + then it is simpler to just set this property on the ZipFile itself, when + creating a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you can + modify the Encryption on an encrypted entry: you can remove encryption + from an entry that was encrypted; you can encrypt an entry that was not + encrypted previously; or, you can change the encryption algorithm. The + changes in encryption are not made permanent until you call Save() on the + ZipFile. To effect changes in encryption, the entry content is + streamed through several transformations, depending on the modification + the application has requested. For example if the entry is not encrypted + and the application sets Encryption to PkzipWeak, then at + the time of Save(), the original entry is read and decompressed, + then re-compressed and encrypted. Conversely, if the original entry is + encrypted with PkzipWeak encryption, and the application sets the + Encryption property to WinZipAes128, then at the time of + Save(), the original entry is decrypted via PKZIP encryption and + decompressed, then re-compressed and re-encrypted with AES. This all + happens automatically within the library, but it can be time-consuming for + large entries. + + + + Additionally, when updating archives, it is not possible to change the + password when changing the encryption algorithm. To change both the + algorithm and the password, you need to Save() the zipfile twice. First + set the Encryption to None, then call Save(). Then set the + Encryption to the new value (not "None"), then call Save() + once again. + + + + The WinZip AES encryption algorithms are not supported on the .NET Compact + Framework. + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other file + uses encryption. + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt") + ZipEntry e1= zip.AddFile("2008-Regional-Sales-Report.pdf"); + e1.Encryption= EncryptionAlgorithm.WinZipAes256; + e1.Password= "Top.Secret.No.Peeking!"; + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + // Specify the password that is used during extraction, for + // all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.AddFile("ReadMe.txt") + Dim e1 as ZipEntry + e1= zip.AddFile("2008-Regional-Sales-Report.pdf") + e1.Encryption= EncryptionAlgorithm.WinZipAes256 + e1.Password= "Top.Secret.No.Peeking!" + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + ' Specify the password that is used during extraction, for + ' all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + + Thrown in the setter if EncryptionAlgorithm.Unsupported is specified. + + + ZipEntry.Password + ZipFile.Encryption + + + + The Password to be used when encrypting a ZipEntry upon + ZipFile.Save(), or when decrypting an entry upon Extract(). + + + + + This is a write-only property on the entry. Set this to request that the + entry be encrypted when writing the zip archive, or set it to specify the + password to be used when extracting an existing entry that is encrypted. + + + + The password set here is implicitly used to encrypt the entry during the + operation, or to decrypt during the or operation. If you set + the Password on a ZipEntry after calling Save(), there is no + effect. + + + + Consider setting the property when using a + password. Answering concerns that the standard password protection + supported by all zip tools is weak, WinZip has extended the ZIP + specification with a way to use AES Encryption to protect entries in the + Zip file. Unlike the "PKZIP 2.0" encryption specified in the PKZIP + specification, AES + Encryption uses a standard, strong, tested, encryption + algorithm. DotNetZip can create zip archives that use WinZip-compatible + AES encryption, if you set the property. But, + archives created that use AES encryption may not be readable by all other + tools and libraries. For example, Windows Explorer cannot read a + "compressed folder" (a zip file) that uses AES encryption, though it can + read a zip file that uses "PKZIP encryption." + + + + The class also has a + property. This property takes precedence over any password set on the + ZipFile itself. Typically, you would use the per-entry Password when most + entries in the zip archive use one password, and a few entries use a + different password. If all entries in the zip file use the same password, + then it is simpler to just set this property on the ZipFile itself, + whether creating a zip archive or extracting a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you + cannot modify the password on any encrypted entry, except by extracting + the entry with the original password (if any), removing the original entry + via , and then adding a new + entry with a new Password. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Password property on that ZipEntry and then + calling Save() on the ZipFile does not update the password + on that entry in the archive. Neither is an exception thrown. Instead, + what happens during the Save() is the existing entry is copied + through to the new zip archive, in its original encrypted form. Upon + re-reading that archive, the entry can be decrypted with its original + password. + + + + If you read a ZipFile, and there is an un-encrypted entry, you can set the + Password on the entry and then call Save() on the ZipFile, and get + encryption on that entry. + + + + + + + This example creates a zip file with two entries, and then extracts the + entries from the zip file. When creating the zip file, the two files are + added to the zip file using password protection. Each entry uses a + different password. During extraction, each file is extracted with the + appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry; + entry= zip.AddFile("Declaration.txt"); + entry.Password= "123456!"; + entry = zip.AddFile("Report.xls"); + entry.Password= "1Secret!"; + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + ZipEntry entry; + entry = zip["Declaration.txt"]; + entry.Password = "123456!"; + entry.Extract("extractDir"); + entry = zip["Report.xls"]; + entry.Password = "1Secret!"; + entry.Extract("extractDir"); + } + + + + + Using zip As New ZipFile + Dim entry as ZipEntry + entry= zip.AddFile("Declaration.txt") + entry.Password= "123456!" + entry = zip.AddFile("Report.xls") + entry.Password= "1Secret!" + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + Dim entry as ZipEntry + entry = zip("Declaration.txt") + entry.Password = "123456!" + entry.Extract("extractDir") + entry = zip("Report.xls") + entry.Password = "1Secret!" + entry.Extract("extractDir") + End Using + + + + + + + ZipFile.Password + + + + The action the library should take when extracting a file that already exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting + an entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file to be + extracted does not already exist. + + + + + + + This example shows how to set the ExtractExistingFile property in + an ExtractProgress event, in response to user input. The + ExtractProgress event is invoked if and only if the + ExtractExistingFile property was previously set to + ExtractExistingFileAction.InvokeExtractProgressEvent. + + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + Console.WriteLine("extract {0} ", e.CurrentEntry.FileName); + + else if (e.EventType == ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite) + { + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user if he wants overwrite the file + do + { + Console.Write("Overwrite {0} in {1} ? (y/n/C) ", entry.FileName, e.ExtractLocation); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && response[0]!='Y' && + response[0]!='N' && response[0]!='C'); + + if (response[0]=='C') + e.Cancel = true; + else if (response[0]=='Y') + entry.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently; + else + entry.ExtractExistingFile= ExtractExistingFileAction.DoNotOverwrite; + } + } + + + + + + The action to take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur within a call to ZipFile.Save, as the various files contained + in a ZipFile are being saved into the zip archive. During the + Save, DotNetZip will perform a File.Open on the file + associated to the ZipEntry, and then will read the entire contents of + the file as it is zipped. Either the open or the Read may fail, because + of lock conflicts or other reasons. Using this property, you can + specify the action to take when such errors occur. + + + + Typically you will NOT set this property on individual ZipEntry + instances. Instead, you will set the ZipFile.ZipErrorAction property on + the ZipFile instance, before adding any entries to the + ZipFile. If you do this, errors encountered on behalf of any of + the entries in the ZipFile will be handled the same way. + + + + But, if you use a handler, you will want + to set this property on the ZipEntry within the handler, to + communicate back to DotNetZip what you would like to do with the + particular error. + + + + + + + + + Indicates whether the entry was included in the most recent save. + + + An entry can be excluded or skipped from a save if there is an error + opening or reading the entry. + + + + + + A callback that allows the application to specify the compression to use + for a given entry that is about to be added to the zip archive. + + + + + See + + + + + + Set to indicate whether to use UTF-8 encoding for filenames and comments. + + + + + + If this flag is set, the comment and filename for the entry will be + encoded with UTF-8, as described in the Zip + specification, if necessary. "Necessary" means, the filename or + entry comment (if any) cannot be reflexively encoded and decoded using the + default code page, IBM437. + + + + Setting this flag to true is equivalent to setting to System.Text.Encoding.UTF8. + + + + This flag has no effect or relation to the text encoding used within the + file itself. + + + + + + + The text encoding to use for the FileName and Comment on this ZipEntry, + when the default encoding is insufficient. + + + + + + Don't use this property. See . + + + + + + + Specifies the alternate text encoding used by this ZipEntry + + + + The default text encoding used in Zip files for encoding filenames and + comments is IBM437, which is something like a superset of ASCII. In + cases where this is insufficient, applications can specify an + alternate encoding. + + + When creating a zip file, the usage of the alternate encoding is + governed by the property. + Typically you would set both properties to tell DotNetZip to employ an + encoding that is not IBM437 in the zipfile you are creating. + + + Keep in mind that because the ZIP specification states that the only + valid encodings to use are IBM437 and UTF-8, if you use something + other than that, then zip tools and libraries may not be able to + successfully read the zip archive you generate. + + + The zip specification states that applications should presume that + IBM437 is in use, except when a special bit is set, which indicates + UTF-8. There is no way to specify an arbitrary code page, within the + zip file itself. When you create a zip file encoded with gb2312 or + ibm861 or anything other than IBM437 or UTF-8, then the application + that reads the zip file needs to "know" which code page to use. In + some cases, the code page used when reading is chosen implicitly. For + example, WinRar uses the ambient code page for the host desktop + operating system. The pitfall here is that if you create a zip in + Copenhagen and send it to Tokyo, the reader of the zipfile may not be + able to decode successfully. + + + + This example shows how to create a zipfile encoded with a + language-specific encoding: + + using (var zip = new ZipFile()) + { + zip.AlternateEnoding = System.Text.Encoding.GetEncoding("ibm861"); + zip.AlternateEnodingUsage = ZipOption.Always; + zip.AddFileS(arrayOfFiles); + zip.Save("Myarchive-Encoded-in-IBM861.zip"); + } + + + + + + + Describes if and when this instance should apply + AlternateEncoding to encode the FileName and Comment, when + saving. + + + + + + Indicates whether an entry is marked as a text file. Be careful when + using on this property. Unless you have a good reason, you should + probably ignore this property. + + + + + The ZIP format includes a provision for specifying whether an entry in + the zip archive is a text or binary file. This property exposes that + metadata item. Be careful when using this property: It's not clear + that this property as a firm meaning, across tools and libraries. + + + + To be clear, when reading a zip file, the property value may or may + not be set, and its value may or may not be valid. Not all entries + that you may think of as "text" entries will be so marked, and entries + marked as "text" are not guaranteed in any way to be text entries. + Whether the value is set and set correctly depends entirely on the + application that produced the zip file. + + + + There are many zip tools available, and when creating zip files, some + of them "respect" the IsText metadata field, and some of them do not. + Unfortunately, even when an application tries to do "the right thing", + it's not always clear what "the right thing" is. + + + + There's no firm definition of just what it means to be "a text file", + and the zip specification does not help in this regard. Twenty years + ago, text was ASCII, each byte was less than 127. IsText meant, all + bytes in the file were less than 127. These days, it is not the case + that all text files have all bytes less than 127. Any unicode file + may have bytes that are above 0x7f. The zip specification has nothing + to say on this topic. Therefore, it's not clear what IsText really + means. + + + + This property merely tells a reading application what is stored in the + metadata for an entry, without guaranteeing its validity or its + meaning. + + + + When DotNetZip is used to create a zipfile, it attempts to set this + field "correctly." For example, if a file ends in ".txt", this field + will be set. Your application may override that default setting. When + writing a zip file, you must set the property before calling + Save() on the ZipFile. + + + + When reading a zip file, a more general way to decide just what kind + of file is contained in a particular entry is to use the file type + database stored in the operating system. The operating system stores + a table that says, a file with .jpg extension is a JPG image file, a + file with a .xml extension is an XML document, a file with a .txt is a + pure ASCII text document, and so on. To get this information on + Windows, you + need to read and parse the registry. + + + + + using (var zip = new ZipFile()) + { + var e = zip.UpdateFile("Descriptions.mme", ""); + e.IsText = true; + zip.Save(zipPath); + } + + + + Using zip As New ZipFile + Dim e2 as ZipEntry = zip.AddFile("Descriptions.mme", "") + e.IsText= True + zip.Save(zipPath) + End Using + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Extract the entry to the filesystem, starting at the current + working directory. + + + + This method has a bunch of overloads! One of them is sure to + be the right one for you... If you don't like these, check + out the ExtractWithPassword() methods. + + + + + + + + + This method extracts an entry from a zip file into the current + working directory. The path of the entry as extracted is the full + path as specified in the zip archive, relative to the current + working directory. After the file is extracted successfully, the + file attributes and timestamps are set. + + + + The action taken when extraction an entry would overwrite an + existing file is determined by the property. + + + + Within the call to Extract(), the content for the entry is + written into a filesystem file, and then the last modified time of the + file is set according to the property on + the entry. See the remarks the property for + some details about the last modified time. + + + + + + + Extract the entry to a file in the filesystem, using the specified + behavior when extraction would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the file is set after + extraction. + + + + + The action to take if extraction would overwrite an existing file. + + + + + Extracts the entry to the specified stream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + the stream to which the entry should be extracted. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory. + + + the pathname of the base directory + + + + + + This example extracts only the entries in a zip file that are .txt files, + into a directory called "textfiles". + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + { + zip[s1].Extract("textfiles"); + } + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + + Using this method, existing entries in the filesystem will not be + overwritten. If you would like to force the overwrite of existing + files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + String sZipPath = "Airborne.zip"; + String sFilePath = "Readme.txt"; + String sRootFolder = "Digado"; + using (ZipFile zip = ZipFile.Read(sZipPath)) + { + if (zip.EntryFileNames.Contains(sFilePath)) + { + // use the string indexer on the zip file + zip[sFileName].Extract(sRootFolder, + ExtractExistingFileAction.OverwriteSilently); + } + } + + + + Dim sZipPath as String = "Airborne.zip" + Dim sFilePath As String = "Readme.txt" + Dim sRootFolder As String = "Digado" + Using zip As ZipFile = ZipFile.Read(sZipPath) + If zip.EntryFileNames.Contains(sFilePath) + ' use the string indexer on the zip file + zip(sFilePath).Extract(sRootFolder, _ + ExtractExistingFileAction.OverwriteSilently) + End If + End Using + + + + the pathname of the base directory + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, using the current working directory + and the specified password. + + + + This method has a bunch of overloads! One of them is sure to be + the right one for you... + + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property for some + details about how the "last modified" time of the created file is + set. + + + + + In this example, entries that use encryption are extracted using a + particular password. + + using (var zip = ZipFile.Read(FilePath)) + { + foreach (ZipEntry e in zip) + { + if (e.UsesEncryption) + e.ExtractWithPassword("Secret!"); + else + e.Extract(); + } + } + + + Using zip As ZipFile = ZipFile.Read(FilePath) + Dim e As ZipEntry + For Each e In zip + If (e.UsesEncryption) + e.ExtractWithPassword("Secret!") + Else + e.Extract + End If + Next + End Using + + + The Password to use for decrypting the entry. + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified password. + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The pathname of the base directory. + The Password to use for decrypting the entry. + + + + Extract the entry to a file in the filesystem, relative to the + current directory, using the specified behavior when extraction + would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The Password to use for decrypting the entry. + + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + the pathname of the base directory + + The action to take if extraction would + overwrite an existing file. + + The Password to use for decrypting the entry. + + + + Extracts the entry to the specified stream, using the specified + Password. For example, the caller could extract to Console.Out, or + to a MemoryStream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + + the stream to which the entry should be extracted. + + + The password to use for decrypting the entry. + + + + + Opens a readable stream corresponding to the zip entry in the + archive. The stream decompresses and decrypts as necessary, as it + is read. + + + + + + DotNetZip offers a variety of ways to extract entries from a zip + file. This method allows an application to extract an entry by + reading a . + + + + The return value is of type . Use it as you would any + stream for reading. When an application calls on that stream, it will + receive data from the zip entry that is decrypted and decompressed + as necessary. + + + + CrcCalculatorStream adds one additional feature: it keeps a + CRC32 checksum on the bytes of the stream as it is read. The CRC + value is available in the property on the + CrcCalculatorStream. When the read is complete, your + application + should check this CRC against the + property on the ZipEntry to validate the content of the + ZipEntry. You don't have to validate the entry using the CRC, but + you should, to verify integrity. Check the example for how to do + this. + + + + If the entry is protected with a password, then you need to provide + a password prior to calling , either by + setting the property on the entry, or the + property on the ZipFile + itself. Or, you can use , the + overload of OpenReader that accepts a password parameter. + + + + If you want to extract entry data into a write-able stream that is + already opened, like a , do not + use this method. Instead, use . + + + + Your application may use only one stream created by OpenReader() at + a time, and you should not call other Extract methods before + completing your reads on a stream obtained from OpenReader(). This + is because there is really only one source stream for the compressed + content. A call to OpenReader() seeks in the source stream, to the + beginning of the compressed content. A subsequent call to + OpenReader() on a different entry will seek to a different position + in the source stream, as will a call to Extract() or one of its + overloads. This will corrupt the state for the decompressing stream + from the original call to OpenReader(). + + + + The OpenReader() method works only when the ZipEntry is + obtained from an instance of ZipFile. This method will throw + an exception if the ZipEntry is obtained from a . + + + + + This example shows how to open a zip archive, then read in a named + entry via a stream. After the read loop is complete, the code + compares the calculated during the read loop with the expected CRC + on the ZipEntry, to verify the extraction. + + using (ZipFile zip = new ZipFile(ZipFileToRead)) + { + ZipEntry e1= zip["Elevation.mp3"]; + using (Ionic.Zlib.CrcCalculatorStream s = e1.OpenReader()) + { + byte[] buffer = new byte[4096]; + int n, totalBytesRead= 0; + do { + n = s.Read(buffer,0, buffer.Length); + totalBytesRead+=n; + } while (n>0); + if (s.Crc32 != e1.Crc32) + throw new Exception(string.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)); + if (totalBytesRead != e1.UncompressedSize) + throw new Exception(string.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)); + } + } + + + Using zip As New ZipFile(ZipFileToRead) + Dim e1 As ZipEntry = zip.Item("Elevation.mp3") + Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader + Dim n As Integer + Dim buffer As Byte() = New Byte(4096) {} + Dim totalBytesRead As Integer = 0 + Do + n = s.Read(buffer, 0, buffer.Length) + totalBytesRead = (totalBytesRead + n) + Loop While (n > 0) + If (s.Crc32 <> e1.Crc32) Then + Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)) + End If + If (totalBytesRead <> e1.UncompressedSize) Then + Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)) + End If + End Using + End Using + + + + The Stream for reading. + + + + Opens a readable stream for an encrypted zip entry in the archive. + The stream decompresses and decrypts as necessary, as it is read. + + + + + See the documentation on the method for + full details. This overload allows the application to specify a + password for the ZipEntry to be read. + + + + The password to use for decrypting the entry. + The Stream for reading. + + + + Pass in either basedir or s, but not both. + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Extract to a stream + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Reads one ZipEntry from the given stream. The content for + the entry does not get decompressed or decrypted. This method + basically reads metadata, and seeks. + + the ZipContainer this entry belongs to. + + true of this is the first entry being read from the stream. + + the ZipEntry read from the stream. + + + + Finds a particular segment in the given extra field. + This is used when modifying a previously-generated + extra field, in particular when removing the AES crypto + segment in the extra field. + + + + + At current cursor position in the stream, read the extra + field, and set the properties on the ZipEntry instance + appropriately. This can be called when processing the + Extra field in the Central Directory, or in the local + header. + + + + + generate and return a byte array that encodes the filename + for the entry. + + + + side effects: generate and store into _CommentBytes the + byte array for any comment attached to the entry. Also + sets _actualEncoding to indicate the actual encoding + used. The same encoding is used for both filename and + comment. + + + + + + Stores the position of the entry source stream, or, if the position is + already stored, seeks to that position. + + + + + This method is called in prep for reading the source stream. If PKZIP + encryption is used, then we need to calc the CRC32 before doing the + encryption, because the CRC is used in the 12th byte of the PKZIP + encryption header. So, we need to be able to seek backward in the source + when saving the ZipEntry. This method is called from the place that + calculates the CRC, and also from the method that does the encryption of + the file data. + + + + The first time through, this method sets the _sourceStreamOriginalPosition + field. Subsequent calls to this method seek to that position. + + + + + + Copy metadata that may have been changed by the app. We do this when + resetting the zipFile instance. If the app calls Save() on a ZipFile, then + tries to party on that file some more, we may need to Reset() it , which + means re-reading the entries and then copying the metadata. I think. + + + + + Set the input stream and get its length, if possible. The length is + used for progress updates, AND, to allow an optimization in case of + a stream/file of zero length. In that case we skip the Encrypt and + compression Stream. (like DeflateStream or BZip2OutputStream) + + + + + Prepare the given stream for output - wrap it in a CountingStream, and + then in a CRC stream, and an encryptor and deflator as appropriate. + + + + Previously this was used in ZipEntry.Write(), but in an effort to + introduce some efficiencies in that method I've refactored to put the + code inline. This method still gets called by ZipOutputStream. + + + + + + An enum that specifies the type of timestamp available on the ZipEntry. + + + + + + The last modified time of a file can be stored in multiple ways in + a zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + This bit field describes which of the formats were found in a ZipEntry that was read. + + + + + + + Default value. + + + + + A DOS timestamp with 2-second precision. + + + + + A Windows timestamp with 100-ns precision. + + + + + A Unix timestamp with 1-second precision. + + + + + A Unix timestamp with 1-second precision, stored in InfoZip v1 format. This + format is outdated and is supported for reading archives only. + + + + + The method of compression to use for a particular ZipEntry. + + + + PKWare's + ZIP Specification describes a number of distinct + cmopression methods that can be used within a zip + file. DotNetZip supports a subset of them. + + + + + No compression at all. For COM environments, the value is 0 (zero). + + + + + DEFLATE compression, as described in IETF RFC + 1951. This is the "normal" compression used in zip + files. For COM environments, the value is 8. + + + + + BZip2 compression, a compression algorithm developed by Julian Seward. + For COM environments, the value is 12. + + + + + An enum that specifies the source of the ZipEntry. + + + + + Default value. Invalid on a bonafide ZipEntry. + + + + + The entry was instantiated by calling AddFile() or another method that + added an entry from the filesystem. + + + + + The entry was instantiated via or + . + + + + + The ZipEntry was instantiated by reading a zipfile. + + + + + The content for the ZipEntry will be or was provided by the WriteDelegate. + + + + + The content for the ZipEntry will be obtained from the stream dispensed by the OpenDelegate. + The entry was instantiated via . + + + + + The content for the ZipEntry will be or was obtained from a ZipOutputStream. + + + + + An enum providing the options when an error occurs during opening or reading + of a file or directory that is being saved to a zip file. + + + + + This enum describes the actions that the library can take when an error occurs + opening or reading a file, as it is being saved into a Zip archive. + + + + In some cases an error will occur when DotNetZip tries to open a file to be + added to the zip archive. In other cases, an error might occur after the + file has been successfully opened, while DotNetZip is reading the file. + + + + The first problem might occur when calling AddDirectory() on a directory + that contains a Clipper .dbf file; the file is locked by Clipper and + cannot be opened by another process. An example of the second problem is + the ERROR_LOCK_VIOLATION that results when a file is opened by another + process, but not locked, and a range lock has been taken on the file. + Microsoft Outlook takes range locks on .PST files. + + + + + + Throw an exception when an error occurs while zipping. This is the default + behavior. (For COM clients, this is a 0 (zero).) + + + + + When an error occurs during zipping, for example a file cannot be opened, + skip the file causing the error, and continue zipping. (For COM clients, + this is a 1.) + + + + + When an error occurs during zipping, for example a file cannot be opened, + retry the operation that caused the error. Be careful with this option. If + the error is not temporary, the library will retry forever. (For COM + clients, this is a 2.) + + + + + When an error occurs, invoke the zipError event. The event type used is + . A typical use of this option: + a GUI application may wish to pop up a dialog to allow the user to view the + error that occurred, and choose an appropriate action. After your + processing in the error event, if you want to skip the file, set on the + ZipProgressEventArgs.CurrentEntry to Skip. If you want the + exception to be thrown, set ZipErrorAction on the CurrentEntry + to Throw. If you want to cancel the zip, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + Skip in that a cancel will not save any further entries, if there are any. + (For COM clients, the value of this enum is a 3.) + + + + + Options for using ZIP64 extensions when saving zip archives. + + + + + + Designed many years ago, the original zip + specification from PKWARE allowed for 32-bit quantities for the + compressed and uncompressed sizes of zip entries, as well as a 32-bit quantity + for specifying the length of the zip archive itself, and a maximum of 65535 + entries. These limits are now regularly exceeded in many backup and archival + scenarios. Recently, PKWare added extensions to the original zip spec, called + "ZIP64 extensions", to raise those limitations. This property governs whether + DotNetZip will use those extensions when writing zip archives. The use of + these extensions is optional and explicit in DotNetZip because, despite the + status of ZIP64 as a bona fide standard, many other zip tools and libraries do + not support ZIP64, and therefore a zip file with ZIP64 extensions may be + unreadable by some of those other tools. + + + + Set this property to to always use ZIP64 + extensions when saving, regardless of whether your zip archive needs it. + Suppose you add 5 files, each under 100k, to a ZipFile. If you specify Always + for this flag, you will get a ZIP64 archive, though the archive does not need + to use ZIP64 because none of the original zip limits had been exceeded. + + + + Set this property to to tell the DotNetZip + library to never use ZIP64 extensions. This is useful for maximum + compatibility and interoperability, at the expense of the capability of + handling large files or large archives. NB: Windows Explorer in Windows XP + and Windows Vista cannot currently extract files from a zip64 archive, so if + you want to guarantee that a zip archive produced by this library will work in + Windows Explorer, use Never. If you set this property to , and your application creates a zip that would + exceed one of the Zip limits, the library will throw an exception while saving + the zip file. + + + + Set this property to to tell the + DotNetZip library to use the ZIP64 extensions when required by the + entry. After the file is compressed, the original and compressed sizes are + checked, and if they exceed the limits described above, then zip64 can be + used. That is the general idea, but there is an additional wrinkle when saving + to a non-seekable device, like the ASP.NET Response.OutputStream, or + Console.Out. When using non-seekable streams for output, the entry + header - which indicates whether zip64 is in use - is emitted before it is + known if zip64 is necessary. It is only after all entries have been saved + that it can be known if ZIP64 will be required. On seekable output streams, + after saving all entries, the library can seek backward and re-emit the zip + file header to be consistent with the actual ZIP64 requirement. But using a + non-seekable output stream, the library cannot seek backward, so the header + can never be changed. In other words, the archive's use of ZIP64 extensions is + not alterable after the header is emitted. Therefore, when saving to + non-seekable streams, using is the same + as using : it will always produce a zip + archive that uses ZIP64 extensions. + + + + + + + The default behavior, which is "Never". + (For COM clients, this is a 0 (zero).) + + + + + Do not use ZIP64 extensions when writing zip archives. + (For COM clients, this is a 0 (zero).) + + + + + Use ZIP64 extensions when writing zip archives, as necessary. + For example, when a single entry exceeds 0xFFFFFFFF in size, or when the archive as a whole + exceeds 0xFFFFFFFF in size, or when there are more than 65535 entries in an archive. + (For COM clients, this is a 1.) + + + + + Always use ZIP64 extensions when writing zip archives, even when unnecessary. + (For COM clients, this is a 2.) + + + + + An enum representing the values on a three-way toggle switch + for various options in the library. This might be used to + specify whether to employ a particular text encoding, or to use + ZIP64 extensions, or some other option. + + + + + The default behavior. This is the same as "Never". + (For COM clients, this is a 0 (zero).) + + + + + Never use the associated option. + (For COM clients, this is a 0 (zero).) + + + + + Use the associated behavior "as necessary." + (For COM clients, this is a 1.) + + + + + Use the associated behavior Always, whether necessary or not. + (For COM clients, this is a 2.) + + + + + A class for collecting the various options that can be used when + Reading zip files for extraction or update. + + + + + When reading a zip file, there are several options an + application can set, to modify how the file is read, or what + the library does while reading. This class collects those + options into one container. + + + + Pass an instance of the ReadOptions class into the + ZipFile.Read() method. + + + . + . + + + + + An event handler for Read operations. When opening large zip + archives, you may want to display a progress bar or other + indicator of status progress while reading. This parameter + allows you to specify a ReadProgress Event Handler directly. + When you call Read(), the progress event is invoked as + necessary. + + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + + + + + + Provides a stream metaphor for reading zip files. + + + + + This class provides an alternative programming model for reading zip files to + the one enabled by the class. Use this when reading zip + files, as an alternative to the class, when you would + like to use a Stream class to read the file. + + + + Some application designs require a readable stream for input. This stream can + be used to read a zip file, and extract entries. + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and + extract zip files. ZipInputStream can be used only to read and + extract zip files. If you want to use a stream to create zip files, check + out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + + Create a ZipInputStream, wrapping it around an existing stream. + + + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and extract + zip files. ZipInputStream can be used only to read and extract zip + files. If you want to use a stream to create zip files, check out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + The stream to read. It must be readable. This stream will be closed at + the time the ZipInputStream is closed. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using raw As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read) + Using input As ZipInputStream = New ZipInputStream(raw) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Using + End Sub + + + + + + Create a ZipInputStream, given the name of an existing zip file. + + + + + + This constructor opens a FileStream for the given zipfile, and + wraps a ZipInputStream around that. See the documentation for the + constructor for full details. + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + + + The name of the filesystem file to read. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var input= new ZipInputStream(inputFileName)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using input As ZipInputStream = New ZipInputStream(inputFileName) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Sub + + + + + + Create a ZipInputStream, explicitly specifying whether to + keep the underlying stream open. + + + + See the documentation for the ZipInputStream(Stream) + constructor for a discussion of the class, and an example of how to use the class. + + + + The stream to read from. It must be readable. + + + + true if the application would like the stream + to remain open after the ZipInputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + The text encoding to use when reading entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to read zip archives that use something other than + UTF-8 or IBM437, set this property to specify the code page to use when + reading encoded filenames and comments for each ZipEntry in the zip + file. + + + + This property is "provisional". When the entry in the zip archive is not + explicitly marked as using UTF-8, then IBM437 is used to decode filenames + and comments. If a loss of data would result from using IBM436 - + specifically when encoding and decoding is not reflexive - the codepage + specified here is used. It is possible, therefore, to have a given entry + with a Comment encoded in IBM437 and a FileName encoded with + the specified "provisional" codepage. + + + + When a zip file uses an arbitrary, non-UTF8 code page for encoding, there + is no standard way for the reader application - whether DotNetZip, WinZip, + WinRar, or something else - to know which codepage has been used for the + entries. Readers of zip files are not able to inspect the zip file and + determine the codepage that was used for the entries contained within it. + It is left to the application or user to determine the necessary codepage + when reading zip files encoded this way. If you use an incorrect codepage + when reading a zipfile, you will get entries with filenames that are + incorrect, and the incorrect filenames may even contain characters that + are not legal for use within filenames in Windows. Extracting entries with + illegal characters in the filenames will lead to exceptions. It's too bad, + but this is just the way things are with code pages in zip files. Caveat + Emptor. + + + + + + + Size of the work buffer to use for the ZLIB codec during decompression. + + + + Setting this affects the performance and memory efficiency of compression + and decompression. For larger files, setting this to a larger size may + improve performance, but the exact numbers vary depending on available + memory, and a bunch of other variables. I don't have good firm + recommendations on how to set it. You'll have to test it yourself. Or + just leave it alone and accept the default. + + + + + Sets the password to be used on the ZipInputStream instance. + + + + + + When reading a zip archive, this password is used to read and decrypt the + entries that are encrypted within the zip file. When entries within a zip + file use different passwords, set the appropriate password for the entry + before the first call to Read() for each entry. + + + + When reading an entry that is not encrypted, the value of this property is + ignored. + + + + + + + This example uses the ZipInputStream to read and extract entries from a + zip file, using a potentially different password for each entry. + + + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(_inputFileName, FileMode.Open, FileAccess.Read )) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + input.Password = PasswordForEntry(e.FileName); + if (e.IsDirectory) continue; + string outputPath = Path.Combine(_extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + + + + Read the data from the stream into the buffer. + + + + + The data for the zipentry will be decrypted and uncompressed, as + necessary, before being copied into the buffer. + + + + You must set the property before calling + Read() the first time for an encrypted entry. To determine if an + entry is encrypted and requires a password, check the ZipEntry.Encryption property. + + + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Read the next entry from the zip file. + + + + + Call this method just before calling , + to position the pointer in the zip file to the next entry that can be + read. Subsequent calls to Read(), will decrypt and decompress the + data in the zip file, until Read() returns 0. + + + + Each time you call GetNextEntry(), the pointer in the wrapped + stream is moved to the next entry in the zip file. If you call , and thus re-position the pointer within + the file, you will need to call GetNextEntry() again, to insure + that the file pointer is positioned at the beginning of a zip entry. + + + + This method returns the ZipEntry. Using a stream approach, you will + read the raw bytes for an entry in a zip file via calls to Read(). + Alternatively, you can extract an entry into a file, or a stream, by + calling , or one of its siblings. + + + + + + The ZipEntry read. Returns null (or Nothing in VB) if there are no more + entries in the zip file. + + + + + + Dispose the stream. + + + + + This method disposes the ZipInputStream. It may also close the + underlying stream, depending on which constructor was used. + + + + Typically the application will call Dispose() implicitly, via + a using statement in C#, or a Using statement in VB. + + + + Application code won't call this code directly. This method may + be invoked in two distinct scenarios. If disposing == true, the + method has been called directly or indirectly by a user's code, + for example via the public Dispose() method. In this case, both + managed and unmanaged resources can be referenced and disposed. + If disposing == false, the method has been called by the runtime + from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources + must be referenced or disposed. + + + + + true if the Dispose method was invoked by user code. + + + + + Always returns true. + + + + + Returns the value of CanSeek for the underlying (wrapped) stream. + + + + + Always returns false. + + + + + Returns the length of the underlying stream. + + + + + Gets or sets the position of the underlying stream. + + + Setting the position is equivalent to calling Seek(value, SeekOrigin.Begin). + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + + + + This method seeks in the underlying stream. + + + + + Call this method if you want to seek around within the zip file for random access. + + + + Applications can intermix calls to Seek() with calls to . After a call to Seek(), + GetNextEntry() will get the next ZipEntry that falls after + the current position in the input stream. You're on your own for finding + out just where to seek in the stream, to get to the various entries. + + + + + the offset point to seek to + the reference point from which to seek + The new position + + + + This method always throws a NotSupportedException. + + ignored + + + + Provides a stream metaphor for generating zip files. + + + + + This class writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides an alternative programming model to the one enabled by the + class. Use this when creating zip files, as an + alternative to the class, when you would like to use a + Stream type to write the zip file. + + + + Both the ZipOutputStream class and the ZipFile class can be used + to create zip files. Both of them support many of the common zip features, + including Unicode, different compression levels, and ZIP64. They provide + very similar performance when creating zip files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipOutputStream class implements the interface. In order for + ZipOutputStream to produce a valid zip file, you use use it within + a using clause (Using in VB), or call the Dispose() method + explicitly. See the examples for how to employ a using clause. + + + + Also, a note regarding compression performance: On the desktop .NET + Framework, DotNetZip can use a multi-threaded compression implementation + that provides significant speed increases on large files, over 300k or so, + at the cost of increased memory use at runtime. (The output of the + compression is almost exactly the same size). But, the multi-threaded + approach incurs a performance hit on smaller files. There's no way for the + ZipOutputStream to know whether parallel compression will be beneficial, + because the ZipOutputStream does not know how much data you will write + through the stream. You may wish to set the property to zero, if you are compressing + large files through ZipOutputStream. This will cause parallel + compression to be used, always. + + + + + + Create a ZipOutputStream, wrapping an existing stream. + + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + + + The stream to wrap. It must be writable. This stream will be closed at + the time the ZipOutputStream is closed. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(raw)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using raw As FileStream = File.Open(outputFileName, FileMode.Create, FileAccess.ReadWrite) + Using output As ZipOutputStream = New ZipOutputStream(raw) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End Using + End If + End Sub + + + + + + Create a ZipOutputStream that writes to a filesystem file. + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + The name of the zip file to create. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var output= new ZipOutputStream(outputFileName)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using output As ZipOutputStream = New ZipOutputStream(outputFileName) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End If + End Sub + + + + + + Create a ZipOutputStream. + + + + See the documentation for the ZipOutputStream(Stream) + constructor for an example. + + + + The stream to wrap. It must be writable. + + + + true if the application would like the stream + to remain open after the ZipOutputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Sets the password to be used on the ZipOutputStream instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + written to the ZipOutputStream. + + + + Using a password does not encrypt or protect the "directory" of the + archive - the list of entries contained in the archive. If you set the + Password property, the password actually applies to individual + entries that are added to the archive, subsequent to the setting of this + property. The list of filenames in the archive that is eventually created + will appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + If you set this property, and then add a set of entries to the archive via + calls to PutNextEntry, then each entry is encrypted with that + password. You may also want to change the password between adding + different entries. If you set the password, add an entry, then set the + password to null (Nothing in VB), and add another entry, the + first entry is encrypted and the second is not. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If + you set the password to a null value (Nothing in VB), + Encryption is reset to None. + + + + Special case: if you wrap a ZipOutputStream around a non-seekable stream, + and use encryption, and emit an entry of zero bytes, the Close() or + PutNextEntry() following the entry will throw an exception. + + + + + + + The Encryption to use for entries added to the ZipOutputStream. + + + + + The specified Encryption is applied to the entries subsequently + written to the ZipOutputStream instance. + + + + If you set this to something other than + EncryptionAlgorithm.None, you will also need to set the + to a non-null, non-empty value in + order to actually get encryption on the entry. + + + + + ZipOutputStream.Password + ZipEntry.Encryption + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + Setting this may affect performance. For larger files, setting this to a + larger size may improve performance, but I'm not sure. Sorry, I don't + currently have good recommendations on how to set it. You can test it if + you like. + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when compressing + data for the entries in the zip archive. Different compression strategies + work better on different sorts of data. The strategy parameter can affect + the compression ratio and the speed of compression but not the correctness + of the compresssion. For more information see . + + + + + The type of timestamp attached to the ZipEntry. + + + + Set this in order to specify the kind of timestamp that should be emitted + into the zip file for each entry. + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipOutputStream class, like , and , + setting this property on a ZipOutputStream + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipOutputStream instance. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method used on each entry added to the ZipOutputStream. + + + + + A comment attached to the zip archive. + + + + + + The application sets this property to specify a comment to be embedded + into the generated zip archive. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + The default value for the property is . is + safest, in the sense that you will not get an Exception if a + pre-ZIP64 limit is exceeded. + + + + You must set this property before calling Write(). + + + + + + + Indicates whether ZIP64 extensions were used when saving the zip archive. + + + + The value is defined only after the ZipOutputStream has been closed. + + + + + Whether the ZipOutputStream should use case-insensitive comparisons when + checking for uniqueness of zip entries. + + + + + Though the zip specification doesn't prohibit zipfiles with duplicate + entries, Sane zip files have no duplicates, and the DotNetZip library + cannot create zip files with duplicate entries. If an application attempts + to call with a name that duplicates one + already used within the archive, the library will throw an Exception. + + + This property allows the application to specify whether the + ZipOutputStream instance considers ordinal case when checking for + uniqueness of zip entries. + + + + + + Indicates whether to encode entry filenames and entry comments using + Unicode (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + the ZipOutputStream will encode all filenames and comments using + the IBM437 codepage. This can cause "loss of information" on some + filenames, but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipOutputStream, does not set the + encoding, then adds two files, each with names of four Chinese characters + each, this will result in a duplicate filename exception. In the case + where you add a single file with a name containing four Chinese + characters, the zipfile will save properly, but extracting that file + later, with any zip tool, will result in an error, because the question + mark is not legal for use within filenames on Windows. These are just a + few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + The text encoding to use when emitting entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the + ProvisionalAlternateEncoding property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of ProvisionalAlternateEncoding between each entry you + add, and between adding entries and the call to Close(). Don't do + this. It will likely result in a zipfile that is not readable. For best + interoperability, either leave ProvisionalAlternateEncoding + alone, or specify it only once, before adding any entries to the + ZipOutputStream instance. There is one exception to this + recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. If you use an incorrect codepage when reading a zipfile, you + will get entries with filenames that are incorrect, and the incorrect + filenames may even contain characters that are not legal for use within + filenames in Windows. Extracting entries with illegal characters in the + filenames will lead to exceptions. It's too bad, but this is just the way + things are with code pages in zip files. Caveat Emptor. + + + + One possible approach for specifying the code page for a given zip file is + to describe the code page in a human-readable form in the Zip comment. For + example, the comment may read "Entries in this archive are encoded in the + Big5 code page". For maximum interoperability, the zip comment in this + case should be encoded in the default, IBM437 code page. In this case, + the zip comment is encoded using a different page than the filenames. To + do this, Specify ProvisionalAlternateEncoding to your desired + region-specific code page, once before adding any entries, and then set + the property and reset + ProvisionalAlternateEncoding to IBM437 before calling Close(). + + + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, when + the CompressionMethod is Deflate, and if the entry is + larger than the given size. Zero means "always use parallel + deflate", while -1 means "never use parallel deflate". + + + + If the entry size cannot be known before compression, as with any entry + added via a ZipOutputStream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is slightly less effective. + + + + Parallel deflate tends to not be as effective as single-threaded deflate + because the original data stream is split into multiple independent + buffers, each of which is compressed in parallel. But because they are + treated independently, there is no opportunity to share compression + dictionaries, and additional framing bytes must be added to the output + stream. For that reason, a deflated stream may be slightly larger when + compressed using parallel deflate, as compared to a traditional + single-threaded deflate. For files of about 512k, the increase over the + normal deflate is as much as 5% of the total compressed size. For larger + files, the difference can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when using + Encryption. This is primarily because encryption tends to slow down + the entire pipeline. Also, multi-threaded compression gives less of an + advantage when using lower compression levels, for example . You may have to perform + some tests to determine the best approach for your situation. + + + + The default value for this property is -1, which means parallel + compression will not be performed unless you set it to zero. + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is + effective only if set before calling + ZipOutputStream.Write() for the first time. + + + + + + + + + Returns true if an entry by the given name has already been written + to the ZipOutputStream. + + + + The name of the entry to scan for. + + + + true if an entry by the given name has already been written. + + + + + Write the data from the buffer to the stream. + + + + As the application writes data into this stream, the data may be + compressed and encrypted before being written out to the underlying + stream, depending on the settings of the + and the properties. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Specify the name of the next entry that will be written to the zip file. + + + + + Call this method just before calling , to + specify the name of the entry that the next set of bytes written to + the ZipOutputStream belongs to. All subsequent calls to Write, + until the next call to PutNextEntry, + will be inserted into the named entry in the zip file. + + + + If the used in PutNextEntry() ends in + a slash, then the entry added is marked as a directory. Because directory + entries do not contain data, a call to Write(), before an + intervening additional call to PutNextEntry(), will throw an + exception. + + + + If you don't call Write() between two calls to + PutNextEntry(), the first entry is inserted into the zip file as a + file of zero size. This may be what you want. + + + + Because PutNextEntry() closes out the prior entry, if any, this + method may throw if there is a problem with the prior entry. + + + + This method returns the ZipEntry. You can modify public properties + on the ZipEntry, such as , , and so on, until the first call to + ZipOutputStream.Write(), or until the next call to + PutNextEntry(). If you modify the ZipEntry after + having called Write(), you may get a runtime exception, or you may + silently get an invalid zip archive. + + + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + using (FileStream fs raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(fs)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + output.PutNextEntry("entry1.txt"); + byte[] buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #1."); + output.Write(buffer,0,buffer.Length); + output.PutNextEntry("entry2.txt"); // this will be zero length + output.PutNextEntry("entry3.txt"); + buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #3."); + output.Write(buffer,0,buffer.Length); + } + } + } + + + + + The name of the entry to be added, including any path to be used + within the zip file. + + + + The ZipEntry created. + + + + + + Dispose the stream + + + + + This method writes the Zip Central directory, then closes the stream. The + application must call Dispose() (or Close) in order to produce a valid zip file. + + + + Typically the application will call Dispose() implicitly, via a using + statement in C#, or a Using statement in VB. + + + + + set this to true, always. + + + + Always returns false. + + + + + Always returns false. + + + + + Always returns true. + + + + + Always returns a NotSupportedException. + + + + + Setting this property always returns a NotSupportedException. Getting it + returns the value of the Position on the underlying stream. + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + + + + Sort-of like a factory method, ForUpdate is used only when + the application needs to update the zip entry metadata for + a segmented zip file, when the starting segment is earlier + than the ending segment, for a particular entry. + + + + The update is always contiguous, never rolls over. As a + result, this method doesn't need to return a ZSS; it can + simply return a FileStream. That's why it's "sort of" + like a Factory method. + + + Caller must Close/Dispose the stream object returned by + this method. + + + + + + Name of the filesystem file corresponding to the current segment. + + + + The name is not always the name currently being used in the + filesystem. When rwMode is RwMode.Write, the filesystem file has a + temporary name until the stream is closed or until the next segment is + started. + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Enumerates the options for a logical conjunction. This enum is intended for use + internally by the FileSelector class. + + + + + FileSelector encapsulates logic that selects files from a source - a zip file + or the filesystem - based on a set of criteria. This class is used internally + by the DotNetZip library, in particular for the AddSelectedFiles() methods. + This class can also be used independently of the zip capability in DotNetZip. + + + + + + The FileSelector class is used internally by the ZipFile class for selecting + files for inclusion into the ZipFile, when the method, or one of + its overloads, is called. It's also used for the methods. Typically, an + application that creates or manipulates Zip archives will not directly + interact with the FileSelector class. + + + + Some applications may wish to use the FileSelector class directly, to + select files from disk volumes based on a set of criteria, without creating or + querying Zip archives. The file selection criteria include: a pattern to + match the filename; the last modified, created, or last accessed time of the + file; the size of the file; and the attributes of the file. + + + + Consult the documentation for + for more information on specifying the selection criteria. + + + + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + By default the FileSelector will traverse NTFS Reparse Points. To + change this, use FileSelector(String, bool). + + + + The criteria for file selection. + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + The criteria for file selection. + + whether to traverse NTFS reparse points (junctions). + + + + + The string specifying which files to include when retrieving. + + + + + Specify the criteria in statements of 3 elements: a noun, an operator, + and a value. Consider the string "name != *.doc" . The noun is + "name". The operator is "!=", implying "Not Equal". The value is + "*.doc". That criterion, in English, says "all files with a name that + does not end in the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; + "atime", "mtime", and "ctime" for last access time, last modfied time, + and created time of the file, respectively; "attributes" (or "attrs") + for the file attributes; "size" (or "length") for the file length + (uncompressed); and "type" for the type of object, either a file or a + directory. The "attributes", "type", and "name" nouns all support = + and != as operators. The "size", "atime", "mtime", and "ctime" nouns + support = and !=, and >, >=, <, <= as well. The times are + taken to be expressed in local time. + + + + Specify values for the file attributes as a string with one or more of + the characters H,R,S,A,I,L in any order, implying file attributes of + Hidden, ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint + (symbolic link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as + the format. If you omit the HH:mm:ss portion, it is assumed to be + 00:00:00 (midnight). + + + + The value for a size criterion is expressed in integer quantities of + bytes, kilobytes (use k or kb after the number), megabytes (m or mb), + or gigabytes (g or gb). + + + + The value for a name is a pattern to match against the filename, + potentially including wildcards. The pattern follows CMD.exe glob + rules: * implies one or more of any character, while ? implies one + character. If the name pattern contains any slashes, it is matched to + the entire filename, including the path; otherwise, it is matched + against only the filename without the path. This means a pattern of + "*\*.*" matches all files one directory level deep, while a pattern of + "*.*" matches all files in all directories. + + + + To specify a name pattern that includes spaces, use single quotes + around the pattern. A pattern of "'* *.*'" will match all files that + have spaces in the filename. The full criteria string for that would + be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D + (implying a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + ctime > 2009/01/01-03:00:00 + all files with a created time after 3am (local time), + on January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND, OR, and XOR. Using + a string like "name = *.txt AND size >= 100k" for the + selectionCriteria retrieves entries whose names end in .txt, and whose + uncompressed size is greater than or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to + group clauses in the boolean logic. Absent parenthesis, the + precedence of the criterion atoms is determined by order of + appearance. Unlike the C# language, the AND conjunction does not take + precendence over the logical OR. This is important only in strings + that contain 3 or more criterion atoms. In other words, "name = *.txt + and size > 1000 or attributes = H" implies "((name = *.txt AND size + > 1000) OR attributes = H)" while "attributes = H OR name = *.txt + and size > 1000" evaluates to "((attributes = H OR name = *.txt) + AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to + retrieve all entries that were last updated on 2009 February 14, + specify "mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this + to say: all files updated after 12:00am on February 14th, until + 12:00am on February 15th. You can use the same bracketing approach to + specify any time period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no + spaces, it is treated as a pattern to match for the filename. + Therefore a string like "*.xls" will be equivalent to specifying "name + = *.xls". This "shorthand" notation does not work with compound + criteria. + + + + There is no logic in this class that insures that the inclusion + criteria are internally consistent. For example, it's possible to + specify criteria that says the file must have a size of less than 100 + bytes, as well as a size that is greater than 1000 bytes. Obviously + no file will ever satisfy such criteria, but this class does not check + for or detect such inconsistencies. + + + + + + Thrown in the setter if the value has an invalid syntax. + + + + + Indicates whether searches will traverse NTFS reparse points, like Junctions. + + + + + Returns a string representation of the FileSelector object. + + The string representation of the boolean logic statement of the file + selection criteria for this instance. + + + + Returns the names of the files in the specified directory + that fit the selection criteria specified in the FileSelector. + + + + This is equivalent to calling + with recurseDirectories = false. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Returns the names of the files in the specified directory that fit the + selection criteria specified in the FileSelector, optionally recursing + through subdirectories. + + + + This method applies the file selection criteria contained in the + FileSelector to the files contained in the given directory, and + returns the names of files that conform to the criteria. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + Whether to recurse through subdirectories when applying the file + selection criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + a collection of ZipEntry objects that conform to the criteria. + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + This overload allows the selection of ZipEntry instances from the ZipFile to be restricted + to entries contained within a particular directory in the ZipFile. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the criteria. + + + + Summary description for EnumUtil. + + + + + Returns the value of the DescriptionAttribute if the specified Enum + value has one. If not, returns the ToString() representation of the + Enum value. + + The Enum to get the description for + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. + Note: use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. A + parameter specified whether the operation is case-sensitive. Note: + use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + Whether the operation is case-sensitive or not. + + + + + Computes a CRC-32. The CRC-32 algorithm is parameterized - you + can set the polynomial and enable or disable bit + reversal. This can be used for GZIP, BZip2, or ZIP. + + + This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip + archive files. + + + + + Indicates the total number of bytes applied to the CRC. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a + computation defined by PKzip for PKZIP 2.0 (weak) encryption. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + Process one byte in the CRC. + + the byte to include into the CRC . + + + + Process a run of N identical bytes into the CRC. + + + + This method serves as an optimization for updating the CRC when a + run of identical bytes is found. Rather than passing in a buffer of + length n, containing all identical bytes b, this method accepts the + byte value and the length of the (virtual) buffer - the length of + the run. + + + the byte to include into the CRC. + the number of times that byte should be repeated. + + + + Combines the given CRC32 value with the current running total. + + + This is useful when using a divide-and-conquer approach to + calculating a CRC. Multiple threads can each calculate a + CRC32 on a segment of the data, and then combine the + individual CRC32 values at the end. + + the crc value to be combined with this one + the length of data the CRC value was calculated on + + + + Create an instance of the CRC32 class using the default settings: no + bit reversal, and a polynomial of 0xEDB88320. + + + + + Create an instance of the CRC32 class, specifying whether to reverse + data bits or not. + + + specify true if the instance should reverse data bits. + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here. In the CRC-32 used by GZIP and PKZIP, the bits are not + reversed; Therefore if you want a CRC32 with compatibility with + those, you should pass false. + + + + + + Create an instance of the CRC32 class, specifying the polynomial and + whether to reverse data bits or not. + + + The polynomial to use for the CRC, expressed in the reversed (LSB) + format: the highest ordered bit in the polynomial value is the + coefficient of the 0th power; the second-highest order bit is the + coefficient of the 1 power, and so on. Expressed this way, the + polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320. + + + specify true if the instance should reverse data bits. + + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here for the reverseBits parameter. In the CRC-32 used by + GZIP and PKZIP, the bits are not reversed; Therefore if you want a + CRC32 with compatibility with those, you should pass false for the + reverseBits parameter. + + + + + + Reset the CRC-32 class - clear the CRC "remainder register." + + + + Use this when employing a single instance of this class to compute + multiple, distinct CRCs on multiple, distinct data blocks. + + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). The stream uses the default CRC32 + algorithm, which implies a polynomial of 0xEDB88320. + + + The underlying stream + + + + The constructor allows the caller to specify how to handle the + underlying stream at close. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). + + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(). + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(), and the CRC32 instance to use. + + + + The stream uses the specified CRC32 instance, which allows the + application to specify how the CRC gets calculated. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + the CRC32 instance to use to calculate the CRC32 + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of + bytes written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + The running total of the CRC is kept as data is written or read + through the stream. read this property after all reads or writes to + get an accurate CRC for the entire stream. + + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + Set this at any point before calling . + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + Always returns false. + + + + + + Indicates whether the stream supports writing. + + + + + Flush the stream. + + + + + Returns the length of the underlying stream. + + + + + The getter for this property returns the total bytes read. + If you use the setter, it will throw + . + + + + + Seeking is not supported on this stream. This method always throws + + + N/A + N/A + N/A + + + + This method always throws + + + N/A + + + + Closes the stream. + + + + + A class for compressing and decompressing streams using the Deflate algorithm. + + + + + + The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any + stream. + + + + Using this stream, applications can compress or decompress data via stream + Read and Write operations. Either compresssion or decompression + can occur through either reading or writing. The compression format used is + DEFLATE, which is documented in IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.". + + + + This class is similar to , except that + ZlibStream adds the RFC + 1950 - ZLIB framing bytes to a compressed stream when compressing, or + expects the RFC1950 framing bytes when decompressing. The DeflateStream + does not. + + + + + + + + + + Create a DeflateStream using the specified CompressionMode. + + + + When mode is CompressionMode.Compress, the DeflateStream will use + the default compression level. The "captive" stream will be closed when + the DeflateStream is closed. + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + + + + Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. The "captive" stream will be closed when the DeflateStream is + closed. + + + + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the DeflateStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a DeflateStream using the specified + CompressionMode, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compression. Specify true for + the parameter to leave the stream open. + + + + The DeflateStream will use the default compression level. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + + + + Indicates whether the DeflateStream will compress or decompress. + + + true if the application would like the stream to + remain open after inflation/deflation. + + + + Create a DeflateStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify whether + the stream should be left open after Deflation or Inflation. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter + to leave the stream open. + + + + + + + This example shows how to use a DeflateStream to compress data from + a file, and store the compressed data into another file. + + + using (var output = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + // can write additional data to the output stream here + } + + + + Using output As FileStream = File.Create(fileToCompress & ".deflated") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + See the ZLIB documentation for the meaning of the flush behavior. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + + The ZLIB strategy to be used during compression. + + + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + Application code won't call this code directly. This method may be + invoked in two distinct scenarios. If disposing == true, the method + has been called directly or indirectly by a user's code, for example + via the public Dispose() method. In this case, both managed and + unmanaged resources can be referenced and disposed. If disposing == + false, the method has been called by the runtime from inside the + object finalizer and this method should not reference other objects; + in that case only unmanaged resources must be referenced or + disposed. + + + + true if the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + If you wish to use the DeflateStream to compress data while + reading, you can create a DeflateStream with + CompressionMode.Compress, providing an uncompressed data stream. + Then call Read() on that DeflateStream, and the data read will be + compressed as you read. If you wish to use the DeflateStream to + decompress data while reading, you can create a DeflateStream with + CompressionMode.Decompress, providing a readable compressed data + stream. Then call Read() on that DeflateStream, and the data read + will be decompressed as you read. + + + + A DeflateStream can be used for Read() or Write(), but not both. + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Write data to the stream. + + + + + If you wish to use the DeflateStream to compress data while + writing, you can create a DeflateStream with + CompressionMode.Compress, and a writable output stream. Then call + Write() on that DeflateStream, providing uncompressed data + as input. The data sent to the output stream will be the compressed form + of the data written. If you wish to use the DeflateStream to + decompress data while writing, you can create a DeflateStream with + CompressionMode.Decompress, and a writable output stream. Then + call Write() on that stream, providing previously compressed + data. The data sent to the output stream will be the decompressed form of + the data written. + + + + A DeflateStream can be used for Read() or Write(), + but not both. + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using DEFLATE (RFC 1951). + + + + Uncompress it with . + + + DeflateStream.UncompressString(byte[]) + DeflateStream.CompressBuffer(byte[]) + GZipStream.CompressString(string) + ZlibStream.CompressString(string) + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using DEFLATE. + + + + Uncompress it with . + + + DeflateStream.CompressString(string) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.CompressBuffer(byte[]) + ZlibStream.CompressBuffer(byte[]) + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a DEFLATE'd byte array into a single string. + + + DeflateStream.CompressString(String) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.UncompressString(byte[]) + ZlibStream.UncompressString(byte[]) + + + A buffer containing DEFLATE-compressed data. + + + The uncompressed string + + + + Uncompress a DEFLATE'd byte array into a byte array. + + + DeflateStream.CompressBuffer(byte[]) + DeflateStream.UncompressString(byte[]) + GZipStream.UncompressBuffer(byte[]) + ZlibStream.UncompressBuffer(byte[]) + + + A buffer containing data that has been compressed with DEFLATE. + + + The data in uncompressed form + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a + . It adds GZIP compression or decompression to any + stream. + + + + Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the + Ionic.Zlib.GZipStream can compress while writing, or decompress while + reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC + 1952, "GZIP file format specification version 4.3". + + + A GZipStream can be used to decompress data (through Read()) or + to compress data (through Write()), but not both. + + + + If you wish to use the GZipStream to compress data, you must wrap it + around a write-able stream. As you call Write() on the GZipStream, the + data will be compressed into the GZIP format. If you want to decompress data, + you must wrap the GZipStream around a readable stream that contains an + IETF RFC 1952-compliant stream. The data will be decompressed as you call + Read() on the GZipStream. + + + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The comment on the GZIP stream. + + + + + The GZIP format allows for each file to optionally have an associated + comment stored with the file. The comment is encoded with the ISO-8859-1 + code page. To include a comment in a GZIP stream you create, set this + property before calling Write() for the first time on the + GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property + after the first call to Read(). If no comment has been set in the + GZIP bytestream, the Comment property will return null + (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + + + The GZIP format optionally allows each file to have an associated + filename. When compressing data (through Write()), set this + FileName before calling Write() the first time on the GZipStream. + The actual filename is encoded into the GZIP bytestream with the + ISO-8859-1 code page, according to RFC 1952. It is the application's + responsibility to insure that the FileName can be encoded and decoded + correctly with this code page. + + + + When decompressing (through Read()), you can retrieve this value + any time after the first Read(). In the case where there was no filename + encoded into the GZIP bytestream, the property will return null (Nothing + in VB). + + + + + + The last modified time for the GZIP stream. + + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to + Write(). When decompressing, you can retrieve this value any time + after the first call to Read(). + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + Create a GZipStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the GZipStream will use the + default compression level. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + + This example shows how to use a GZipStream to uncompress a file. + + private void GunZipFile(string filename) + { + if (!filename.EndsWith(".gz)) + throw new ArgumentException("filename"); + var DecompressedFile = filename.Substring(0,filename.Length-3); + byte[] working = new byte[WORKING_BUFFER_SIZE]; + int n= 1; + using (System.IO.Stream input = System.IO.File.OpenRead(filename)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(DecompressedFile)) + { + while (n !=0) + { + n= decompressor.Read(working, 0, working.Length); + if (n > 0) + { + output.Write(working, 0, n); + } + } + } + } + } + } + + + + Private Sub GunZipFile(ByVal filename as String) + If Not (filename.EndsWith(".gz)) Then + Throw New ArgumentException("filename") + End If + Dim DecompressedFile as String = filename.Substring(0,filename.Length-3) + Dim working(WORKING_BUFFER_SIZE) as Byte + Dim n As Integer = 1 + Using input As Stream = File.OpenRead(filename) + Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True) + Using output As Stream = File.Create(UncompressedFile) + Do + n= decompressor.Read(working, 0, working.Length) + If n > 0 Then + output.Write(working, 0, n) + End IF + Loop While (n > 0) + End Using + End Using + End Using + End Sub + + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + + + + Create a GZipStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + The CompressionMode (Compress or Decompress) also establishes the + "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A + GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + + This example shows how to use a GZipStream to compress a file into a .gz file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".gz")) + { + using (Stream compressor = new GZipStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".gz") + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the GZipStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a GZipStream using the specified CompressionMode, and + explicitly specify whether the stream should be left open after Deflation + or Inflation. + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to leave + the stream open. + + + + The (Compress or Decompress) also + establishes the "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A GZipStream + with CompressionMode.Decompress works only through Read(). + + + + The GZipStream will use the default compression level. If you want + to specify the compression level, see . + + + + See the other overloads of this constructor for example code. + + + + + + The stream which will be read or written. This is called the "captive" + stream in other places in this documentation. + + + Indicates whether the GZipStream will compress or decompress. + + + + true if the application would like the base stream to remain open after + inflation/deflation. + + + + + Create a GZipStream using the specified CompressionMode and the + specified CompressionLevel, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to + leave the stream open. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read and decompress data from the source stream. + + + + With a GZipStream, decompression is done through reading. + + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a . + + irrelevant; this method will always throw! + + + + Write data to the stream. + + + + + If you wish to use the GZipStream to compress data while writing, + you can create a GZipStream with CompressionMode.Compress, and a + writable output stream. Then call Write() on that GZipStream, + providing uncompressed data as input. The data sent to the output stream + will be the compressed form of the data written. + + + + A GZipStream can be used for Read() or Write(), but not + both. Writing implies compression. Reading implies decompression. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using GZip. + + + + Uncompress it with . + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using GZip. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a GZip'ed byte array into a single string. + + + + + + + A buffer containing GZIP-compressed data. + + + The uncompressed string + + + + Uncompress a GZip'ed byte array into a byte array. + + + + + + + A buffer containing data that has been compressed with GZip. + + + The data in uncompressed form + + + + A class for compressing streams using the + Deflate algorithm with multiple threads. + + + + + This class performs DEFLATE compression through writing. For + more information on the Deflate algorithm, see IETF RFC 1951, + "DEFLATE Compressed Data Format Specification version 1.3." + + + + This class is similar to , except + that this class is for compression only, and this implementation uses an + approach that employs multiple worker threads to perform the DEFLATE. On + a multi-cpu or multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, particularly + for larger streams. How large? Anything over 10mb is a good candidate + for parallel compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla DeflateStream, and also is less efficient as a compressor. For + large files the size of the compressed data stream can be less than 1% + larger than the size of a compressed data stream from the vanialla + DeflateStream. For smaller files the difference can be larger. The + difference will also be larger if you set the BufferSize to be lower than + the default value. Your mileage may vary. Finally, for small files, the + ParallelDeflateOutputStream can be much slower than the vanilla + DeflateStream, because of the overhead associated to using the thread + pool. + + + + + + + + Create a ParallelDeflateOutputStream. + + + + + This stream compresses data written into it via the DEFLATE + algorithm (see RFC 1951), and writes out the compressed byte stream. + + + + The instance will use the default compression level, the default + buffer sizes and the default number of threads and buffers per + thread. + + + + This class is similar to , + except that this implementation uses an approach that employs + multiple worker threads to perform the DEFLATE. On a multi-cpu or + multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, + particularly for larger streams. How large? Anything over 10mb is + a good candidate for parallel compression. + + + + + + + This example shows how to use a ParallelDeflateOutputStream to compress + data. It reads a file, compresses it, and writes the compressed data to + a second, output file. + + + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + String outputFile = fileToCompress + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new ParallelDeflateOutputStream(raw)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New ParallelDeflateOutputStream(raw) + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to which compressed data will be written. + + + + Create a ParallelDeflateOutputStream using the specified CompressionLevel. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream using the specified + CompressionLevel and CompressionStrategy, and specifying whether to + leave the captive stream open when the ParallelDeflateOutputStream is + closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + true if the application would like the stream to remain open after inflation/deflation. + + + + + The ZLIB strategy to be used during compression. + + + + + + The maximum number of buffer pairs to use. + + + + + This property sets an upper limit on the number of memory buffer + pairs to create. The implementation of this stream allocates + multiple buffers to facilitate parallel compression. As each buffer + fills up, this stream uses + ThreadPool.QueueUserWorkItem() + to compress those buffers in a background threadpool thread. After a + buffer is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The size of the buffers used by the compressor threads. + + + + + The default buffer size is 128k. The application can set this value + at any time, but it is effective only before the first Write(). + + + + Larger buffer sizes implies larger memory consumption but allows + more efficient compression. Using smaller buffer sizes consumes less + memory but may result in less effective compression. For example, + using the default buffer size of 128k, the compression delivered is + within 1% of the compression delivered by the single-threaded . On the other hand, using a + BufferSize of 8k can result in a compressed data stream that is 5% + larger than that delivered by the single-threaded + DeflateStream. Excessively small buffer sizes can also cause + the speed of the ParallelDeflateOutputStream to drop, because of + larger thread scheduling overhead dealing with many many small + buffers. + + + + The total amount of storage space allocated for buffering will be + (N*S*2), where N is the number of buffer pairs, and S is the size of + each buffer (this property). There are 2 buffers used by the + compressor, one for input and one for output. By default, DotNetZip + allocates 4 buffer pairs per CPU core, so if your machine has 4 + cores, then the number of buffer pairs used will be 16. If you + accept the default value of this property, 128k, then the + ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory + in total, or 4mb, in blocks of 128kb. If you set this property to + 64kb, then the number will be 16 * 2 * 64kb of buffer memory, or + 2mb. + + + + + + + The CRC32 for the data that was written out, prior to compression. + + + This value is meaningful only after a call to Close(). + + + + + The total number of uncompressed bytes processed by the ParallelDeflateOutputStream. + + + This value is meaningful only after a call to Close(). + + + + + Write data to the stream. + + + + + + To use the ParallelDeflateOutputStream to compress data, create a + ParallelDeflateOutputStream with CompressionMode.Compress, passing a + writable output stream. Then call Write() on that + ParallelDeflateOutputStream, providing uncompressed data as input. The + data sent to the output stream will be the compressed form of the data + written. + + + + To decompress data, use the class. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flush the stream. + + + + + Close the stream. + + + You must call Close on the stream to guarantee that all of the data written in has + been compressed, and the compressed data has been written out. + + + + Dispose the object + + + Because ParallelDeflateOutputStream is IDisposable, the + application must call this method when finished using the instance. + + + This method is generally called implicitly upon exit from + a using scope in C# (Using in VB). + + + + + The Dispose method + + indicates whether the Dispose method was invoked by user code. + + + + + Resets the stream for use with another stream. + + + Because the ParallelDeflateOutputStream is expensive to create, it + has been designed so that it can be recycled and re-used. You have + to call Close() on the stream first, then you can call Reset() on + it, to use it again on another stream. + + + + The new output stream for this era. + + + + + ParallelDeflateOutputStream deflater = null; + foreach (var inputFile in listOfFiles) + { + string outputFile = inputFile + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(inputFile)) + { + using (var outStream = System.IO.File.Create(outputFile)) + { + if (deflater == null) + deflater = new ParallelDeflateOutputStream(outStream, + CompressionLevel.Best, + CompressionStrategy.Default, + true); + deflater.Reset(outStream); + + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + deflater.Write(buffer, 0, n); + } + } + } + } + + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream supports Read operations. + + + Always returns false. + + + + + Indicates whether the stream supports Write operations. + + + Returns true if the provided stream is writable. + + + + + Reading this property always throws a NotSupportedException. + + + + + Returns the current position of the output stream. + + + + Because the output gets written by a background thread, + the value may change asynchronously. Setting this + property always throws a NotSupportedException. + + + + + + This method always throws a NotSupportedException. + + + The buffer into which data would be read, IF THIS METHOD + ACTUALLY DID ANYTHING. + + + The offset within that data array at which to insert the + data that is read, IF THIS METHOD ACTUALLY DID + ANYTHING. + + + The number of bytes to write, IF THIS METHOD ACTUALLY DID + ANYTHING. + + nothing. + + + + This method always throws a NotSupportedException. + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + nothing. It always throws. + + + + This method always throws a NotSupportedException. + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Map from a distance to a distance code. + + + No side effects. _dist_code[256] and _dist_code[257] are never used. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress. + + + + + None means that the data will be simply stored, with no change at all. + If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None + cannot be opened with the default zip reader. Use a different CompressionLevel. + + + + + Same as None. + + + + + The fastest but least effective compression. + + + + + A synonym for BestSpeed. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level, with a good balance of speed and compression efficiency. + + + + + A synonym for Default. + + + + + Pretty good compression! + + + + + Better compression than Level7! + + + + + The "best" compression, where best means greatest reduction in size of the input data stream. + This is also the slowest compression. + + + + + A synonym for BestCompression. + + + + + Describes options for how the compression algorithm is executed. Different strategies + work better on different sorts of data. The strategy parameter can affect the compression + ratio and the speed of compression but not the correctness of the compresssion. + + + + + The default strategy is probably the best for normal data. + + + + + The Filtered strategy is intended to be used most effectively with data produced by a + filter or predictor. By this definition, filtered data consists mostly of small + values with a somewhat random distribution. In this case, the compression algorithm + is tuned to compress them better. The effect of Filtered is to force more Huffman + coding and less string matching; it is a half-step between Default and HuffmanOnly. + + + + + Using HuffmanOnly will force the compressor to do Huffman encoding only, with no + string matching. + + + + + An enum to specify the direction of transcoding - whether to compress or decompress. + + + + + Used to specify that the stream should compress the data. + + + + + Used to specify that the stream should decompress the data. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + the message for the exception. + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Reads a number of characters from the current source TextReader and writes + the data to the target array at the specified index. + + + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + + + The number of characters read. The number will be less than or equal to + count depending on the data available in the source TextReader. Returns -1 + if the end of the stream is reached. + + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + + + Calculates the Adler32 checksum. + + + + This is used within ZLIB. You probably don't need to use this directly. + + + + To compute an Adler32 checksum on a byte array: + + var adler = Adler.Adler32(0, null, 0, 0); + adler = Adler.Adler32(adler, buffer, index, length); + + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The compression level to use in this codec. Useful only in compression mode. + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + The compression strategy to use. + + + This is only effective in compression. The theory offered by ZLIB is that different + strategies could potentially produce significant differences in compression behavior + for different data sets. Unfortunately I don't have any good recommendations for how + to set it differently. When I tested changing the strategy I got minimally different + compression performance. It's best to leave this property alone if you don't have a + good feel for it. Or, you may want to produce a test harness that runs through the + different strategy options and evaluates them on different file types. If you do that, + let me know your results. + + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + Create a ZlibCodec. + + + If you use this default constructor, you will later have to explicitly call + InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress + or decompress. + + + + + Create a ZlibCodec that either compresses or decompresses. + + + Indicates whether the codec should compress (deflate) or decompress (inflate). + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for deflation operation. + + + The codec will use the MAX window bits and the default level of compression. + + + + int bufferSize = 40000; + byte[] CompressedBytes = new byte[bufferSize]; + byte[] DecompressedBytes = new byte[bufferSize]; + + ZlibCodec compressor = new ZlibCodec(); + + compressor.InitializeDeflate(CompressionLevel.Default); + + compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress); + compressor.NextIn = 0; + compressor.AvailableBytesIn = compressor.InputBuffer.Length; + + compressor.OutputBuffer = CompressedBytes; + compressor.NextOut = 0; + compressor.AvailableBytesOut = CompressedBytes.Length; + + while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize) + { + compressor.Deflate(FlushType.None); + } + + while (true) + { + int rc= compressor.Deflate(FlushType.Finish); + if (rc == ZlibConstants.Z_STREAM_END) break; + } + + compressor.EndDeflate(); + + + + Z_OK if all goes well. You generally don't need to check the return code. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel. + + + The codec will use the maximum window bits (15) and the specified + CompressionLevel. It will emit a ZLIB stream as it compresses. + + The compression level for the codec. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the explicit flag governing whether to emit an RFC1950 header byte pair. + + + The codec will use the maximum window bits (15) and the specified CompressionLevel. + If you want to generate a zlib stream, you should specify true for + wantRfc1950Header. In this case, the library will emit a ZLIB + header, as defined in RFC + 1950, in the compressed stream. + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the specified number of window bits. + + + The codec will use the specified number of window bits and the specified CompressionLevel. + + The compression level for the codec. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified + CompressionLevel, the specified number of window bits, and the explicit flag + governing whether to emit an RFC1950 header byte pair. + + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Deflate one batch of data. + + + You must have set InputBuffer and OutputBuffer before calling this method. + + + + private void DeflateBuffer(CompressionLevel level) + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec compressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length); + MemoryStream ms = new MemoryStream(); + + int rc = compressor.InitializeDeflate(level); + + compressor.InputBuffer = UncompressedBytes; + compressor.NextIn = 0; + compressor.AvailableBytesIn = UncompressedBytes.Length; + + compressor.OutputBuffer = buffer; + + // pass 1: deflate + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("deflating: " + compressor.Message); + + ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("deflating: " + compressor.Message); + + if (buffer.Length - compressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + compressor.EndDeflate(); + + ms.Seek(0, SeekOrigin.Begin); + CompressedBytes = new byte[compressor.TotalBytesOut]; + ms.Read(CompressedBytes, 0, CompressedBytes.Length); + } + + + whether to flush all data as you deflate. Generally you will want to + use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to + flush everything. + + Z_OK if all goes well. + + + + End a deflation session. + + + Call this after making a series of one or more calls to Deflate(). All buffers are flushed. + + Z_OK if all goes well. + + + + Reset a codec for another deflation session. + + + Call this to reset the deflation state. For example if a thread is deflating + non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first + block and before the next Deflate(None) of the second block. + + Z_OK if all goes well. + + + + Set the CompressionStrategy and CompressionLevel for a deflation session. + + the level of compression to use. + the strategy to use for compression. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation unconditionally. + + Decoding a MSZip file requires the dictionary state to be set unconditionally + at the end of each block to the previous decoded data + The dictionary bytes to use. + Z_OK if all goes well. + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. + + + + + The minimum size of the working buffer used in the ZlibCodec class. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read() and Write() operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Create a ZlibStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the ZlibStream + will use the default compression level. The "captive" stream will be + closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress a file, and writes the + compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream which will be read or written. + Indicates whether the ZlibStream will compress or decompress. + + + + Create a ZlibStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + The "captive" stream will be closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress data from a file, and writes the + compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream to be read or written while deflating or inflating. + Indicates whether the ZlibStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a ZlibStream using the specified CompressionMode, and + explicitly specify whether the captive stream should be left open after + Deflation or Inflation. + + + + + + When mode is CompressionMode.Compress, the ZlibStream will use + the default compression level. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter to leave the stream + open. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + Indicates whether the ZlibStream will compress or decompress. + true if the application would like the stream to remain + open after inflation/deflation. + + + + Create a ZlibStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify + whether the stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive + stream remain open after the deflation or inflation occurs. By + default, after Close() is called on the stream, the captive + stream is also closed. In some cases this is not desired, for example + if the stream is a that will be + re-read after compression. Specify true for the parameter to leave the stream open. + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. + + + + + + + This example shows how to use a ZlibStream to compress the data from a file, + and store the result into another file. The filestream remains open to allow + additional data to be written to it. + + + using (var output = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + // can write additional data to the output stream here + } + + + Using output As FileStream = File.Create(fileToCompress & ".zlib") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + + The stream which will be read or written. + + Indicates whether the ZlibStream will compress or decompress. + + + true if the application would like the stream to remain open after + inflation/deflation. + + + + A tuning knob to trade speed for effectiveness. This parameter is + effective only when mode is CompressionMode.Compress. + + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, + you can create a ZlibStream with CompressionMode.Compress, + providing an uncompressed data stream. Then call Read() on that + ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create + a ZlibStream with CompressionMode.Decompress, providing a + readable compressed data stream. Then call Read() on that + ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but + not both. + + + + + + The buffer into which the read data should be placed. + + + the offset within that data array to put the first byte read. + + the number of bytes to read. + + the number of bytes read + + + + Calling this method always throws a . + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + nothing. This method always throws. + + + + Calling this method always throws a . + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, + you can create a ZlibStream with CompressionMode.Compress, + and a writable output stream. Then call Write() on that + ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you + wish to use the ZlibStream to decompress data while writing, you + can create a ZlibStream with CompressionMode.Decompress, and a + writable output stream. Then call Write() on that stream, + providing previously compressed data. The data sent to the output stream + will be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using ZLIB. + + + + Uncompress it with . + + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using ZLIB. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a ZLIB-compressed byte array into a single string. + + + + + + + A buffer containing ZLIB-compressed data. + + + The uncompressed string + + + + Uncompress a ZLIB-compressed byte array into a byte array. + + + + + + + A buffer containing ZLIB-compressed data. + + + The data in uncompressed form + + + diff --git a/packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.dll b/packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.dll new file mode 100644 index 0000000000000000000000000000000000000000..9ad1c18a42b50eb86e0ea4fb6b99af74061bfb1f GIT binary patch literal 241152 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%0An6whQW4qj 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�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 literal 0 HcmV?d00001 diff --git a/packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.pdb b/packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.pdb new file mode 100644 index 0000000000000000000000000000000000000000..9123650526533f19a01f8003a71534f09b600d3a GIT binary patch literal 103352 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

B!lviz<+@+ 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 LQR|L?n9P3z#HBvC literal 0 HcmV?d00001 diff --git a/packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.xml b/packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.xml new file mode 100644 index 0000000..917e82b --- /dev/null +++ b/packages/DotNetZip.1.15.0/lib/netstandard2.0/DotNetZip.xml @@ -0,0 +1,18031 @@ + + + + DotNetZip + + + +

+ Delivers the remaining bits, left-aligned, in a byte. + + + + This is valid only if NumRemainingBits is less than 8; + in other words it is valid only after a call to Flush(). + + + + + + Reset the BitWriter. + + + + This is useful when the BitWriter writes into a MemoryStream, and + is used by a BZip2Compressor, which itself is re-used for multiple + distinct data blocks. + + + + + + Write some number of bits from the given value, into the output. + + + + The nbits value should be a max of 25, for safety. For performance + reasons, this method does not check! + + + + + + Write a full 8-bit byte into the output. + + + + + Write four 8-bit bytes into the output. + + + + + Write all available byte-aligned bytes. + + + + This method writes no new output, but flushes any accumulated + bits. At completion, the accumulator may contain up to 7 + bits. + + + This is necessary when re-assembling output from N independent + compressors, one for each of N blocks. The output of any + particular compressor will in general have some fragment of a byte + remaining. This fragment needs to be accumulated into the + parent BZip2OutputStream. + + + + + + Writes all available bytes, and emits padding for the final byte as + necessary. This must be the last method invoked on an instance of + BitWriter. + + + + Knuth's increments seem to work better than Incerpi-Sedgewick here. + Possibly because the number of elems to sort is usually small, typically + <= 20. + + + + BZip2Compressor writes its compressed data out via a BitWriter. This + is necessary because BZip2 does byte shredding. + + + + + The number of uncompressed bytes being held in the buffer. + + + + I am thinking this may be useful in a Stream that uses this + compressor class. In the Close() method on the stream it could + check this value to see if anything has been written at all. You + may think the stream could easily track the number of bytes it + wrote, which would eliminate the need for this. But, there is the + case where the stream writes a complete block, and it is full, and + then writes no more. In that case the stream may want to check. + + + + + + Accept new bytes into the compressor data buffer + + + + This method does the first-level (cheap) run-length encoding, and + stores the encoded data into the rle block. + + + + + + Process one input byte into the block. + + + + + To "process" the byte means to do the run-length encoding. + There are 3 possible return values: + + 0 - the byte was not written, in other words, not + encoded into the block. This happens when the + byte b would require the start of a new run, and + the block has no more room for new runs. + + 1 - the byte was written, and the block is not full. + + 2 - the byte was written, and the block is full. + + + + 0 if the byte was not written, non-zero if written. + + + + Append one run to the output block. + + + + + This compressor does run-length-encoding before BWT and etc. This + method simply appends a run to the output block. The append always + succeeds. The return value indicates whether the block is full: + false (not full) implies that at least one additional run could be + processed. + + + true if the block is now full; otherwise false. + + + + Compress the data that has been placed (Run-length-encoded) into the + block. The compressed data goes into the CompressedBytes array. + + + + Side effects: 1. fills the CompressedBytes array. 2. sets the + AvailableBytesOut property. + + + + + This is the most hammered method of this class. + +

+ This is the version using unrolled loops. +

+
+ + Method "mainQSort3", file "blocksort.c", BZip2 1.0.2 + + + Array instance identical to sfmap, both are used only + temporarily and independently, so we do not need to allocate + additional memory. + + + + A read-only decorator stream that performs BZip2 decompression on Read. + + + + + Compressor State + + + + + Create a BZip2InputStream, wrapping it around the given input Stream. + + + + The input stream will be closed when the BZip2InputStream is closed. + + + The stream from which to read compressed data + + + + Create a BZip2InputStream with the given stream, and + specifying whether to leave the wrapped stream open when + the BZip2InputStream is closed. + + The stream from which to read compressed data + + Whether to leave the input stream open, when the BZip2InputStream closes. + + + + + This example reads a bzip2-compressed file, decompresses it, + and writes the decompressed data into a newly created file. + + + var fname = "logfile.log.bz2"; + using (var fs = File.OpenRead(fname)) + { + using (var decompressor = new Ionic.BZip2.BZip2InputStream(fs)) + { + var outFname = fname + ".decompressed"; + using (var output = File.Create(outFname)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = decompressor.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer, 0, n); + } + } + } + } + + + + + + Read data from the stream. + + + + + To decompress a BZip2 data stream, create a BZip2InputStream, + providing a stream that reads compressed data. Then call Read() on + that BZip2InputStream, and the data read will be decompressed + as you read. + + + + A BZip2InputStream can be used only for Read(), not for Write(). + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Read a single byte from the stream. + + the byte read from the stream, or -1 if EOF + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes read in. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + + + + Dispose the stream. + + + indicates whether the Dispose method was invoked by user code. + + + + + Close the stream. + + + + + Read n bits from input, right justifying the result. + + + + For example, if you read 1 bit, the result is either 0 + or 1. + + + + The number of bits to read, always between 1 and 32. + + + + Called by createHuffmanDecodingTables() exclusively. + + + Called by recvDecodingTables() exclusively. + + + Freq table collected to save a pass over the data during + decompression. + + + Initializes the tt array. + + This method is called when the required length of the array is known. + I don't initialize it at construction time to avoid unneccessary + memory allocation when compressing small files. + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. + + + + + Constructs a new BZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.BZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new BZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new BZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new BZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the BZip2OutputStream to compress data while writing: + create a BZip2OutputStream with a writable output stream. + Then call Write() on that BZip2OutputStream, providing + uncompressed data as input. The data sent to the output stream will + be the compressed form of the input data. + + + + A BZip2OutputStream can be used only for Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value should always be true, unless and until the + object is disposed and closed. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + A write-only decorator stream that compresses data as it is + written using the BZip2 algorithm. This stream compresses by + block using multiple threads. + + + This class performs BZIP2 compression through writing. For + more information on the BZIP2 algorithm, see + . + + + + This class is similar to , + except that this implementation uses an approach that employs multiple + worker threads to perform the compression. On a multi-cpu or multi-core + computer, the performance of this class can be significantly higher than + the single-threaded BZip2OutputStream, particularly for larger streams. + How large? Anything over 10mb is a good candidate for parallel + compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla BZip2OutputStream. Also, for small files, the + ParallelBZip2OutputStream can be much slower than the vanilla + BZip2OutputStream, because of the overhead associated to using the + thread pool. + + + + + + + Constructs a new ParallelBZip2OutputStream, that sends its + compressed output to the given output stream. + + + + The destination stream, to which compressed output will be sent. + + + + + This example reads a file, then compresses it with bzip2 file, + and writes the compressed data into a newly created file. + + + var fname = "logfile.log"; + using (var fs = File.OpenRead(fname)) + { + var outFname = fname + ".bz2"; + using (var output = File.Create(outFname)) + { + using (var compressor = new Ionic.BZip2.ParallelBZip2OutputStream(output)) + { + byte[] buffer = new byte[2048]; + int n; + while ((n = fs.Read(buffer, 0, buffer.Length)) > 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize. + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + + + Constructs a new ParallelBZip2OutputStream. + + the destination stream. + + whether to leave the captive stream open upon closing this stream. + + + + + Constructs a new ParallelBZip2OutputStream with specified blocksize, + and explicitly specifies whether to leave the wrapped stream open. + + + the destination stream. + + The blockSize in units of 100000 bytes. + The valid range is 1..9. + + + whether to leave the captive stream open upon closing this stream. + + + + + The maximum number of concurrent compression worker threads to use. + + + + + This property sets an upper limit on the number of concurrent worker + threads to employ for compression. The implementation of this stream + employs multiple threads from the .NET thread pool, via + ThreadPool.QueueUserWorkItem(), to compress the incoming data by + block. As each block of data is compressed, this stream re-orders the + compressed blocks and writes them to the output stream. + + + + A higher number of workers enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + By default, DotNetZip allocates 4 workers per CPU core, subject to the + upper limit specified in this property. For example, suppose the + application sets this property to 16. Then, on a machine with 2 + cores, DotNetZip will use 8 workers; that number does not exceed the + upper limit specified by this property, so the actual number of + workers used will be 4 * 2 = 8. On a machine with 4 cores, DotNetZip + will use 16 workers; again, the limit does not apply. On a machine + with 8 cores, DotNetZip will use 16 workers, because of the limit. + + + + For each compression "worker thread" that occurs in parallel, there is + up to 2mb of memory allocated, for buffering and processing. The + actual number depends on the property. + + + + CPU utilization will also go up with additional workers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + Close the stream. + + + + This may or may not close the underlying stream. Check the + constructors that accept a bool value. + + + + + + Flush the stream. + + + + + The blocksize parameter specified at construction time. + + + + + Write data to the stream. + + + + + Use the ParallelBZip2OutputStream to compress data while + writing: create a ParallelBZip2OutputStream with a writable + output stream. Then call Write() on that + ParallelBZip2OutputStream, providing uncompressed data as + input. The data sent to the output stream will be the compressed + form of the input data. + + + + A ParallelBZip2OutputStream can be used only for + Write() not for Read(). + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Indicates whether the stream can be read. + + + The return value is always false. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the + total number of uncompressed bytes written through. + + + + + The total number of bytes written out by the stream. + + + This value is meaningful only after a call to Close(). + + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Calling this method always throws a . + + this parameter is never used + this parameter is never used + this parameter is never used + never returns anything; always throws + + + + Returns the "random" number at a specific index. + + the index + the random number + + + + Computes a CRC-32. The CRC-32 algorithm is parameterized - you + can set the polynomial and enable or disable bit + reversal. This can be used for GZIP, BZip2, or ZIP. + + + This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip + archive files. + + + + + Indicates the total number of bytes applied to the CRC. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a + computation defined by PKzip for PKZIP 2.0 (weak) encryption. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + Process one byte in the CRC. + + the byte to include into the CRC . + + + + Process a run of N identical bytes into the CRC. + + + + This method serves as an optimization for updating the CRC when a + run of identical bytes is found. Rather than passing in a buffer of + length n, containing all identical bytes b, this method accepts the + byte value and the length of the (virtual) buffer - the length of + the run. + + + the byte to include into the CRC. + the number of times that byte should be repeated. + + + + Combines the given CRC32 value with the current running total. + + + This is useful when using a divide-and-conquer approach to + calculating a CRC. Multiple threads can each calculate a + CRC32 on a segment of the data, and then combine the + individual CRC32 values at the end. + + the crc value to be combined with this one + the length of data the CRC value was calculated on + + + + Create an instance of the CRC32 class using the default settings: no + bit reversal, and a polynomial of 0xEDB88320. + + + + + Create an instance of the CRC32 class, specifying whether to reverse + data bits or not. + + + specify true if the instance should reverse data bits. + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here. In the CRC-32 used by GZIP and PKZIP, the bits are not + reversed; Therefore if you want a CRC32 with compatibility with + those, you should pass false. + + + + + + Create an instance of the CRC32 class, specifying the polynomial and + whether to reverse data bits or not. + + + The polynomial to use for the CRC, expressed in the reversed (LSB) + format: the highest ordered bit in the polynomial value is the + coefficient of the 0th power; the second-highest order bit is the + coefficient of the 1 power, and so on. Expressed this way, the + polynomial for the CRC-32C used in IEEE 802.3, is 0xEDB88320. + + + specify true if the instance should reverse data bits. + + + + + In the CRC-32 used by BZip2, the bits are reversed. Therefore if you + want a CRC32 with compatibility with BZip2, you should pass true + here for the reverseBits parameter. In the CRC-32 used by + GZIP and PKZIP, the bits are not reversed; Therefore if you want a + CRC32 with compatibility with those, you should pass false for the + reverseBits parameter. + + + + + + Reset the CRC-32 class - clear the CRC "remainder register." + + + + Use this when employing a single instance of this class to compute + multiple, distinct CRCs on multiple, distinct data blocks. + + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). The stream uses the default CRC32 + algorithm, which implies a polynomial of 0xEDB88320. + + + The underlying stream + + + + The constructor allows the caller to specify how to handle the + underlying stream at close. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read. + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + Instances returned from this constructor will leave the underlying + stream open upon Close(). + + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(). + + + + The stream uses the default CRC32 algorithm, which implies a + polynomial of 0xEDB88320. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + + + + A constructor allowing the specification of the length of the stream + to read, as well as whether to keep the underlying stream open upon + Close(), and the CRC32 instance to use. + + + + The stream uses the specified CRC32 instance, which allows the + application to specify how the CRC gets calculated. + + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream; false otherwise. + the CRC32 instance to use to calculate the CRC32 + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of + bytes written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + The running total of the CRC is kept as data is written or read + through the stream. read this property after all reads or writes to + get an accurate CRC for the entire stream. + + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + Set this at any point before calling . + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + Always returns false. + + + + + + Indicates whether the stream supports writing. + + + + + Flush the stream. + + + + + Returns the length of the underlying stream. + + + + + The getter for this property returns the total bytes read. + If you use the setter, it will throw + . + + + + + Seeking is not supported on this stream. This method always throws + + + N/A + N/A + N/A + + + + This method always throws + + + N/A + + + + Closes the stream. + + + + + A class for compressing and decompressing streams using the Deflate algorithm. + + + + + + The DeflateStream is a Decorator on a . It adds DEFLATE compression or decompression to any + stream. + + + + Using this stream, applications can compress or decompress data via stream + Read and Write operations. Either compresssion or decompression + can occur through either reading or writing. The compression format used is + DEFLATE, which is documented in IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.". + + + + This class is similar to , except that + ZlibStream adds the RFC + 1950 - ZLIB framing bytes to a compressed stream when compressing, or + expects the RFC1950 framing bytes when decompressing. The DeflateStream + does not. + + + + + + + + + + Create a DeflateStream using the specified CompressionMode. + + + + When mode is CompressionMode.Compress, the DeflateStream will use + the default compression level. The "captive" stream will be closed when + the DeflateStream is closed. + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + + + + Create a DeflateStream using the specified CompressionMode and the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. The "captive" stream will be closed when the DeflateStream is + closed. + + + + + + + This example uses a DeflateStream to compress data from a file, and writes + the compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (Stream compressor = new DeflateStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".deflated") + Using compressor As Stream = New DeflateStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the DeflateStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a DeflateStream using the specified + CompressionMode, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compression. Specify true for + the parameter to leave the stream open. + + + + The DeflateStream will use the default compression level. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + + + + Indicates whether the DeflateStream will compress or decompress. + + + true if the application would like the stream to + remain open after inflation/deflation. + + + + Create a DeflateStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify whether + the stream should be left open after Deflation or Inflation. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter + to leave the stream open. + + + + + + + This example shows how to use a DeflateStream to compress data from + a file, and store the compressed data into another file. + + + using (var output = System.IO.File.Create(fileToCompress + ".deflated")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + while (n != 0) + { + if (n > 0) + compressor.Write(buffer, 0, n); + n= input.Read(buffer, 0, buffer.Length); + } + } + } + // can write additional data to the output stream here + } + + + + Using output As FileStream = File.Create(fileToCompress & ".deflated") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New DeflateStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + The stream which will be read or written. + Indicates whether the DeflateStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + See the ZLIB documentation for the meaning of the flush behavior. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + + The ZLIB strategy to be used during compression. + + + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + Application code won't call this code directly. This method may be + invoked in two distinct scenarios. If disposing == true, the method + has been called directly or indirectly by a user's code, for example + via the public Dispose() method. In this case, both managed and + unmanaged resources can be referenced and disposed. If disposing == + false, the method has been called by the runtime from inside the + object finalizer and this method should not reference other objects; + in that case only unmanaged resources must be referenced or + disposed. + + + + true if the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + If you wish to use the DeflateStream to compress data while + reading, you can create a DeflateStream with + CompressionMode.Compress, providing an uncompressed data stream. + Then call Read() on that DeflateStream, and the data read will be + compressed as you read. If you wish to use the DeflateStream to + decompress data while reading, you can create a DeflateStream with + CompressionMode.Decompress, providing a readable compressed data + stream. Then call Read() on that DeflateStream, and the data read + will be decompressed as you read. + + + + A DeflateStream can be used for Read() or Write(), but not both. + + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + this is irrelevant, since it will always throw! + irrelevant! + + + + Calling this method always throws a . + + this is irrelevant, since it will always throw! + + + + Write data to the stream. + + + + + If you wish to use the DeflateStream to compress data while + writing, you can create a DeflateStream with + CompressionMode.Compress, and a writable output stream. Then call + Write() on that DeflateStream, providing uncompressed data + as input. The data sent to the output stream will be the compressed form + of the data written. If you wish to use the DeflateStream to + decompress data while writing, you can create a DeflateStream with + CompressionMode.Decompress, and a writable output stream. Then + call Write() on that stream, providing previously compressed + data. The data sent to the output stream will be the decompressed form of + the data written. + + + + A DeflateStream can be used for Read() or Write(), + but not both. + + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using DEFLATE (RFC 1951). + + + + Uncompress it with . + + + DeflateStream.UncompressString(byte[]) + DeflateStream.CompressBuffer(byte[]) + GZipStream.CompressString(string) + ZlibStream.CompressString(string) + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using DEFLATE. + + + + Uncompress it with . + + + DeflateStream.CompressString(string) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.CompressBuffer(byte[]) + ZlibStream.CompressBuffer(byte[]) + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a DEFLATE'd byte array into a single string. + + + DeflateStream.CompressString(String) + DeflateStream.UncompressBuffer(byte[]) + GZipStream.UncompressString(byte[]) + ZlibStream.UncompressString(byte[]) + + + A buffer containing DEFLATE-compressed data. + + + The uncompressed string + + + + Uncompress a DEFLATE'd byte array into a byte array. + + + DeflateStream.CompressBuffer(byte[]) + DeflateStream.UncompressString(byte[]) + GZipStream.UncompressBuffer(byte[]) + ZlibStream.UncompressBuffer(byte[]) + + + A buffer containing data that has been compressed with DEFLATE. + + + The data in uncompressed form + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a + . It adds GZIP compression or decompression to any + stream. + + + + Like the System.IO.Compression.GZipStream in the .NET Base Class Library, the + Ionic.Zlib.GZipStream can compress while writing, or decompress while + reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC + 1952, "GZIP file format specification version 4.3". + + + A GZipStream can be used to decompress data (through Read()) or + to compress data (through Write()), but not both. + + + + If you wish to use the GZipStream to compress data, you must wrap it + around a write-able stream. As you call Write() on the GZipStream, the + data will be compressed into the GZIP format. If you want to decompress data, + you must wrap the GZipStream around a readable stream that contains an + IETF RFC 1952-compliant stream. The data will be decompressed as you call + Read() on the GZipStream. + + + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The comment on the GZIP stream. + + + + + The GZIP format allows for each file to optionally have an associated + comment stored with the file. The comment is encoded with the ISO-8859-1 + code page. To include a comment in a GZIP stream you create, set this + property before calling Write() for the first time on the + GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property + after the first call to Read(). If no comment has been set in the + GZIP bytestream, the Comment property will return null + (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + + + The GZIP format optionally allows each file to have an associated + filename. When compressing data (through Write()), set this + FileName before calling Write() the first time on the GZipStream. + The actual filename is encoded into the GZIP bytestream with the + ISO-8859-1 code page, according to RFC 1952. It is the application's + responsibility to insure that the FileName can be encoded and decoded + correctly with this code page. + + + + When decompressing (through Read()), you can retrieve this value + any time after the first Read(). In the case where there was no filename + encoded into the GZIP bytestream, the property will return null (Nothing + in VB). + + + + + + The last modified time for the GZIP stream. + + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to + Write(). When decompressing, you can retrieve this value any time + after the first call to Read(). + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + Create a GZipStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the GZipStream will use the + default compression level. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + + This example shows how to use a GZipStream to uncompress a file. + + private void GunZipFile(string filename) + { + if (!filename.EndsWith(".gz)) + throw new ArgumentException("filename"); + var DecompressedFile = filename.Substring(0,filename.Length-3); + byte[] working = new byte[WORKING_BUFFER_SIZE]; + int n= 1; + using (System.IO.Stream input = System.IO.File.OpenRead(filename)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(DecompressedFile)) + { + while (n !=0) + { + n= decompressor.Read(working, 0, working.Length); + if (n > 0) + { + output.Write(working, 0, n); + } + } + } + } + } + } + + + + Private Sub GunZipFile(ByVal filename as String) + If Not (filename.EndsWith(".gz)) Then + Throw New ArgumentException("filename") + End If + Dim DecompressedFile as String = filename.Substring(0,filename.Length-3) + Dim working(WORKING_BUFFER_SIZE) as Byte + Dim n As Integer = 1 + Using input As Stream = File.OpenRead(filename) + Using decompressor As Stream = new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, True) + Using output As Stream = File.Create(UncompressedFile) + Do + n= decompressor.Read(working, 0, working.Length) + If n > 0 Then + output.Write(working, 0, n) + End IF + Loop While (n > 0) + End Using + End Using + End Using + End Sub + + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + + + + Create a GZipStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + The CompressionMode (Compress or Decompress) also establishes the + "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A + GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + + This example shows how to use a GZipStream to compress a file into a .gz file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".gz")) + { + using (Stream compressor = new GZipStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".gz") + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to be read or written while deflating or inflating. + Indicates whether the GZipStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a GZipStream using the specified CompressionMode, and + explicitly specify whether the stream should be left open after Deflation + or Inflation. + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to leave + the stream open. + + + + The (Compress or Decompress) also + establishes the "direction" of the stream. A GZipStream with + CompressionMode.Compress works only through Write(). A GZipStream + with CompressionMode.Decompress works only through Read(). + + + + The GZipStream will use the default compression level. If you want + to specify the compression level, see . + + + + See the other overloads of this constructor for example code. + + + + + + The stream which will be read or written. This is called the "captive" + stream in other places in this documentation. + + + Indicates whether the GZipStream will compress or decompress. + + + + true if the application would like the base stream to remain open after + inflation/deflation. + + + + + Create a GZipStream using the specified CompressionMode and the + specified CompressionLevel, and explicitly specify whether the + stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + memory stream that will be re-read after compressed data has been written + to it. Specify true for the parameter to + leave the stream open. + + + + As noted in the class documentation, the CompressionMode (Compress + or Decompress) also establishes the "direction" of the stream. A + GZipStream with CompressionMode.Compress works only through + Write(). A GZipStream with CompressionMode.Decompress works only + through Read(). + + + + + + This example shows how to use a GZipStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read and decompress data from the source stream. + + + + With a GZipStream, decompression is done through reading. + + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a . + + irrelevant; this method will always throw! + + + + Write data to the stream. + + + + + If you wish to use the GZipStream to compress data while writing, + you can create a GZipStream with CompressionMode.Compress, and a + writable output stream. Then call Write() on that GZipStream, + providing uncompressed data as input. The data sent to the output stream + will be the compressed form of the data written. + + + + A GZipStream can be used for Read() or Write(), but not + both. Writing implies compression. Reading implies decompression. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using GZip. + + + + Uncompress it with . + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using GZip. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a GZip'ed byte array into a single string. + + + + + + + A buffer containing GZIP-compressed data. + + + The uncompressed string + + + + Uncompress a GZip'ed byte array into a byte array. + + + + + + + A buffer containing data that has been compressed with GZip. + + + The data in uncompressed form + + + + A class for compressing streams using the + Deflate algorithm with multiple threads. + + + + + This class performs DEFLATE compression through writing. For + more information on the Deflate algorithm, see IETF RFC 1951, + "DEFLATE Compressed Data Format Specification version 1.3." + + + + This class is similar to , except + that this class is for compression only, and this implementation uses an + approach that employs multiple worker threads to perform the DEFLATE. On + a multi-cpu or multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, particularly + for larger streams. How large? Anything over 10mb is a good candidate + for parallel compression. + + + + The tradeoff is that this class uses more memory and more CPU than the + vanilla DeflateStream, and also is less efficient as a compressor. For + large files the size of the compressed data stream can be less than 1% + larger than the size of a compressed data stream from the vanialla + DeflateStream. For smaller files the difference can be larger. The + difference will also be larger if you set the BufferSize to be lower than + the default value. Your mileage may vary. Finally, for small files, the + ParallelDeflateOutputStream can be much slower than the vanilla + DeflateStream, because of the overhead associated to using the thread + pool. + + + + + + + + Create a ParallelDeflateOutputStream. + + + + + This stream compresses data written into it via the DEFLATE + algorithm (see RFC 1951), and writes out the compressed byte stream. + + + + The instance will use the default compression level, the default + buffer sizes and the default number of threads and buffers per + thread. + + + + This class is similar to , + except that this implementation uses an approach that employs + multiple worker threads to perform the DEFLATE. On a multi-cpu or + multi-core computer, the performance of this class can be + significantly higher than the single-threaded DeflateStream, + particularly for larger streams. How large? Anything over 10mb is + a good candidate for parallel compression. + + + + + + + This example shows how to use a ParallelDeflateOutputStream to compress + data. It reads a file, compresses it, and writes the compressed data to + a second, output file. + + + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n= -1; + String outputFile = fileToCompress + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new ParallelDeflateOutputStream(raw)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New ParallelDeflateOutputStream(raw) + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream to which compressed data will be written. + + + + Create a ParallelDeflateOutputStream using the specified CompressionLevel. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream and specify whether to leave the captive stream open + when the ParallelDeflateOutputStream is closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + true if the application would like the stream to remain open after inflation/deflation. + + + + + Create a ParallelDeflateOutputStream using the specified + CompressionLevel and CompressionStrategy, and specifying whether to + leave the captive stream open when the ParallelDeflateOutputStream is + closed. + + + See the + constructor for example code. + + The stream to which compressed data will be written. + A tuning knob to trade speed for effectiveness. + + By tweaking this parameter, you may be able to optimize the compression for + data with particular characteristics. + + + true if the application would like the stream to remain open after inflation/deflation. + + + + + The ZLIB strategy to be used during compression. + + + + + + The maximum number of buffer pairs to use. + + + + + This property sets an upper limit on the number of memory buffer + pairs to create. The implementation of this stream allocates + multiple buffers to facilitate parallel compression. As each buffer + fills up, this stream uses + ThreadPool.QueueUserWorkItem() + to compress those buffers in a background threadpool thread. After a + buffer is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is effective + only before the first call to Write(), which is when the buffers are + allocated. + + + + + + The size of the buffers used by the compressor threads. + + + + + The default buffer size is 128k. The application can set this value + at any time, but it is effective only before the first Write(). + + + + Larger buffer sizes implies larger memory consumption but allows + more efficient compression. Using smaller buffer sizes consumes less + memory but may result in less effective compression. For example, + using the default buffer size of 128k, the compression delivered is + within 1% of the compression delivered by the single-threaded . On the other hand, using a + BufferSize of 8k can result in a compressed data stream that is 5% + larger than that delivered by the single-threaded + DeflateStream. Excessively small buffer sizes can also cause + the speed of the ParallelDeflateOutputStream to drop, because of + larger thread scheduling overhead dealing with many many small + buffers. + + + + The total amount of storage space allocated for buffering will be + (N*S*2), where N is the number of buffer pairs, and S is the size of + each buffer (this property). There are 2 buffers used by the + compressor, one for input and one for output. By default, DotNetZip + allocates 4 buffer pairs per CPU core, so if your machine has 4 + cores, then the number of buffer pairs used will be 16. If you + accept the default value of this property, 128k, then the + ParallelDeflateOutputStream will use 16 * 2 * 128kb of buffer memory + in total, or 4mb, in blocks of 128kb. If you set this property to + 64kb, then the number will be 16 * 2 * 64kb of buffer memory, or + 2mb. + + + + + + + The CRC32 for the data that was written out, prior to compression. + + + This value is meaningful only after a call to Close(). + + + + + The total number of uncompressed bytes processed by the ParallelDeflateOutputStream. + + + This value is meaningful only after a call to Close(). + + + + + Write data to the stream. + + + + + + To use the ParallelDeflateOutputStream to compress data, create a + ParallelDeflateOutputStream with CompressionMode.Compress, passing a + writable output stream. Then call Write() on that + ParallelDeflateOutputStream, providing uncompressed data as input. The + data sent to the output stream will be the compressed form of the data + written. + + + + To decompress data, use the class. + + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Flush the stream. + + + + + Close the stream. + + + You must call Close on the stream to guarantee that all of the data written in has + been compressed, and the compressed data has been written out. + + + + Dispose the object + + + Because ParallelDeflateOutputStream is IDisposable, the + application must call this method when finished using the instance. + + + This method is generally called implicitly upon exit from + a using scope in C# (Using in VB). + + + + + The Dispose method + + indicates whether the Dispose method was invoked by user code. + + + + + Resets the stream for use with another stream. + + + Because the ParallelDeflateOutputStream is expensive to create, it + has been designed so that it can be recycled and re-used. You have + to call Close() on the stream first, then you can call Reset() on + it, to use it again on another stream. + + + + The new output stream for this era. + + + + + ParallelDeflateOutputStream deflater = null; + foreach (var inputFile in listOfFiles) + { + string outputFile = inputFile + ".compressed"; + using (System.IO.Stream input = System.IO.File.OpenRead(inputFile)) + { + using (var outStream = System.IO.File.Create(outputFile)) + { + if (deflater == null) + deflater = new ParallelDeflateOutputStream(outStream, + CompressionLevel.Best, + CompressionStrategy.Default, + true); + deflater.Reset(outStream); + + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + deflater.Write(buffer, 0, n); + } + } + } + } + + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream supports Read operations. + + + Always returns false. + + + + + Indicates whether the stream supports Write operations. + + + Returns true if the provided stream is writable. + + + + + Reading this property always throws a NotSupportedException. + + + + + Returns the current position of the output stream. + + + + Because the output gets written by a background thread, + the value may change asynchronously. Setting this + property always throws a NotSupportedException. + + + + + + This method always throws a NotSupportedException. + + + The buffer into which data would be read, IF THIS METHOD + ACTUALLY DID ANYTHING. + + + The offset within that data array at which to insert the + data that is read, IF THIS METHOD ACTUALLY DID + ANYTHING. + + + The number of bytes to write, IF THIS METHOD ACTUALLY DID + ANYTHING. + + nothing. + + + + This method always throws a NotSupportedException. + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + nothing. It always throws. + + + + This method always throws a NotSupportedException. + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Map from a distance to a distance code. + + + No side effects. _dist_code[256] and _dist_code[257] are never used. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + The compression level to be used when using a DeflateStream or ZlibStream with CompressionMode.Compress. + + + + + None means that the data will be simply stored, with no change at all. + If you are producing ZIPs for use on Mac OSX, be aware that archives produced with CompressionLevel.None + cannot be opened with the default zip reader. Use a different CompressionLevel. + + + + + Same as None. + + + + + The fastest but least effective compression. + + + + + A synonym for BestSpeed. + + + + + A little slower, but better, than level 1. + + + + + A little slower, but better, than level 2. + + + + + A little slower, but better, than level 3. + + + + + A little slower than level 4, but with better compression. + + + + + The default compression level, with a good balance of speed and compression efficiency. + + + + + A synonym for Default. + + + + + Pretty good compression! + + + + + Better compression than Level7! + + + + + The "best" compression, where best means greatest reduction in size of the input data stream. + This is also the slowest compression. + + + + + A synonym for BestCompression. + + + + + Describes options for how the compression algorithm is executed. Different strategies + work better on different sorts of data. The strategy parameter can affect the compression + ratio and the speed of compression but not the correctness of the compresssion. + + + + + The default strategy is probably the best for normal data. + + + + + The Filtered strategy is intended to be used most effectively with data produced by a + filter or predictor. By this definition, filtered data consists mostly of small + values with a somewhat random distribution. In this case, the compression algorithm + is tuned to compress them better. The effect of Filtered is to force more Huffman + coding and less string matching; it is a half-step between Default and HuffmanOnly. + + + + + Using HuffmanOnly will force the compressor to do Huffman encoding only, with no + string matching. + + + + + An enum to specify the direction of transcoding - whether to compress or decompress. + + + + + Used to specify that the stream should compress the data. + + + + + Used to specify that the stream should decompress the data. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + the message for the exception. + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Reads a number of characters from the current source TextReader and writes + the data to the target array at the specified index. + + + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + + + The number of characters read. The number will be less than or equal to + count depending on the data available in the source TextReader. Returns -1 + if the end of the stream is reached. + + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + + + Calculates the Adler32 checksum. + + + + This is used within ZLIB. You probably don't need to use this directly. + + + + To compute an Adler32 checksum on a byte array: + + var adler = Adler.Adler32(0, null, 0, 0); + adler = Adler.Adler32(adler, buffer, index, length); + + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The compression level to use in this codec. Useful only in compression mode. + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + The compression strategy to use. + + + This is only effective in compression. The theory offered by ZLIB is that different + strategies could potentially produce significant differences in compression behavior + for different data sets. Unfortunately I don't have any good recommendations for how + to set it differently. When I tested changing the strategy I got minimally different + compression performance. It's best to leave this property alone if you don't have a + good feel for it. Or, you may want to produce a test harness that runs through the + different strategy options and evaluates them on different file types. If you do that, + let me know your results. + + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + Create a ZlibCodec. + + + If you use this default constructor, you will later have to explicitly call + InitializeInflate() or InitializeDeflate() before using the ZlibCodec to compress + or decompress. + + + + + Create a ZlibCodec that either compresses or decompresses. + + + Indicates whether the codec should compress (deflate) or decompress (inflate). + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for deflation operation. + + + The codec will use the MAX window bits and the default level of compression. + + + + int bufferSize = 40000; + byte[] CompressedBytes = new byte[bufferSize]; + byte[] DecompressedBytes = new byte[bufferSize]; + + ZlibCodec compressor = new ZlibCodec(); + + compressor.InitializeDeflate(CompressionLevel.Default); + + compressor.InputBuffer = System.Text.ASCIIEncoding.ASCII.GetBytes(TextToCompress); + compressor.NextIn = 0; + compressor.AvailableBytesIn = compressor.InputBuffer.Length; + + compressor.OutputBuffer = CompressedBytes; + compressor.NextOut = 0; + compressor.AvailableBytesOut = CompressedBytes.Length; + + while (compressor.TotalBytesIn != TextToCompress.Length && compressor.TotalBytesOut < bufferSize) + { + compressor.Deflate(FlushType.None); + } + + while (true) + { + int rc= compressor.Deflate(FlushType.Finish); + if (rc == ZlibConstants.Z_STREAM_END) break; + } + + compressor.EndDeflate(); + + + + Z_OK if all goes well. You generally don't need to check the return code. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel. + + + The codec will use the maximum window bits (15) and the specified + CompressionLevel. It will emit a ZLIB stream as it compresses. + + The compression level for the codec. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the explicit flag governing whether to emit an RFC1950 header byte pair. + + + The codec will use the maximum window bits (15) and the specified CompressionLevel. + If you want to generate a zlib stream, you should specify true for + wantRfc1950Header. In this case, the library will emit a ZLIB + header, as defined in RFC + 1950, in the compressed stream. + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified CompressionLevel, + and the specified number of window bits. + + + The codec will use the specified number of window bits and the specified CompressionLevel. + + The compression level for the codec. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Initialize the ZlibCodec for deflation operation, using the specified + CompressionLevel, the specified number of window bits, and the explicit flag + governing whether to emit an RFC1950 header byte pair. + + + The compression level for the codec. + whether to emit an initial RFC1950 byte pair in the compressed stream. + the number of window bits to use. If you don't know what this means, don't use this method. + Z_OK if all goes well. + + + + Deflate one batch of data. + + + You must have set InputBuffer and OutputBuffer before calling this method. + + + + private void DeflateBuffer(CompressionLevel level) + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec compressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Deflate: {0} bytes.", UncompressedBytes.Length); + MemoryStream ms = new MemoryStream(); + + int rc = compressor.InitializeDeflate(level); + + compressor.InputBuffer = UncompressedBytes; + compressor.NextIn = 0; + compressor.AvailableBytesIn = UncompressedBytes.Length; + + compressor.OutputBuffer = buffer; + + // pass 1: deflate + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.None); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("deflating: " + compressor.Message); + + ms.Write(compressor.OutputBuffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + compressor.NextOut = 0; + compressor.AvailableBytesOut = buffer.Length; + rc = compressor.Deflate(FlushType.Finish); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("deflating: " + compressor.Message); + + if (buffer.Length - compressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - compressor.AvailableBytesOut); + } + while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0); + + compressor.EndDeflate(); + + ms.Seek(0, SeekOrigin.Begin); + CompressedBytes = new byte[compressor.TotalBytesOut]; + ms.Read(CompressedBytes, 0, CompressedBytes.Length); + } + + + whether to flush all data as you deflate. Generally you will want to + use Z_NO_FLUSH here, in a series of calls to Deflate(), and then call EndDeflate() to + flush everything. + + Z_OK if all goes well. + + + + End a deflation session. + + + Call this after making a series of one or more calls to Deflate(). All buffers are flushed. + + Z_OK if all goes well. + + + + Reset a codec for another deflation session. + + + Call this to reset the deflation state. For example if a thread is deflating + non-consecutive blocks, you can call Reset() after the Deflate(Sync) of the first + block and before the next Deflate(None) of the second block. + + Z_OK if all goes well. + + + + Set the CompressionStrategy and CompressionLevel for a deflation session. + + the level of compression to use. + the strategy to use for compression. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + Set the dictionary to be used for either Inflation or Deflation unconditionally. + + Decoding a MSZip file requires the dictionary state to be set unconditionally + at the end of each block to the previous decoded data + The dictionary bytes to use. + Z_OK if all goes well. + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. + + + + + The minimum size of the working buffer used in the ZlibCodec class. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read() and Write() operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Create a ZlibStream using the specified CompressionMode. + + + + + When mode is CompressionMode.Compress, the ZlibStream + will use the default compression level. The "captive" stream will be + closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress a file, and writes the + compressed data to another file. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, CompressionMode.Compress)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream which will be read or written. + Indicates whether the ZlibStream will compress or decompress. + + + + Create a ZlibStream using the specified CompressionMode and + the specified CompressionLevel. + + + + + + When mode is CompressionMode.Decompress, the level parameter is ignored. + The "captive" stream will be closed when the ZlibStream is closed. + + + + + + This example uses a ZlibStream to compress data from a file, and writes the + compressed data to another file. + + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (Stream compressor = new ZlibStream(raw, + CompressionMode.Compress, + CompressionLevel.BestCompression)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(fileToCompress & ".zlib") + Using compressor As Stream = New ZlibStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + + The stream to be read or written while deflating or inflating. + Indicates whether the ZlibStream will compress or decompress. + A tuning knob to trade speed for effectiveness. + + + + Create a ZlibStream using the specified CompressionMode, and + explicitly specify whether the captive stream should be left open after + Deflation or Inflation. + + + + + + When mode is CompressionMode.Compress, the ZlibStream will use + the default compression level. + + + + This constructor allows the application to request that the captive stream + remain open after the deflation or inflation occurs. By default, after + Close() is called on the stream, the captive stream is also + closed. In some cases this is not desired, for example if the stream is a + that will be re-read after + compression. Specify true for the parameter to leave the stream + open. + + + + See the other overloads of this constructor for example code. + + + + + The stream which will be read or written. This is called the + "captive" stream in other places in this documentation. + Indicates whether the ZlibStream will compress or decompress. + true if the application would like the stream to remain + open after inflation/deflation. + + + + Create a ZlibStream using the specified CompressionMode + and the specified CompressionLevel, and explicitly specify + whether the stream should be left open after Deflation or Inflation. + + + + + + This constructor allows the application to request that the captive + stream remain open after the deflation or inflation occurs. By + default, after Close() is called on the stream, the captive + stream is also closed. In some cases this is not desired, for example + if the stream is a that will be + re-read after compression. Specify true for the parameter to leave the stream open. + + + + When mode is CompressionMode.Decompress, the level parameter is + ignored. + + + + + + + This example shows how to use a ZlibStream to compress the data from a file, + and store the result into another file. The filestream remains open to allow + additional data to be written to it. + + + using (var output = System.IO.File.Create(fileToCompress + ".zlib")) + { + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (Stream compressor = new ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + // can write additional data to the output stream here + } + + + Using output As FileStream = File.Create(fileToCompress & ".zlib") + Using input As Stream = File.OpenRead(fileToCompress) + Using compressor As Stream = New ZlibStream(output, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + ' can write additional data to the output stream here. + End Using + + + + The stream which will be read or written. + + Indicates whether the ZlibStream will compress or decompress. + + + true if the application would like the stream to remain open after + inflation/deflation. + + + + A tuning knob to trade speed for effectiveness. This parameter is + effective only when mode is CompressionMode.Compress. + + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is + 1024 bytes. The minimum size is 128 bytes. You may get better performance + with a larger buffer. Then again, you might not. You would have to test + it. + + + + Set this before the first call to Read() or Write() on the + stream. If you try to set it afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Dispose the stream. + + + + This may or may not result in a Close() call on the captive + stream. See the constructors that have a leaveOpen parameter + for more information. + + + This method may be invoked in two distinct scenarios. If disposing + == true, the method has been called directly or indirectly by a + user's code, for example via the public Dispose() method. In this + case, both managed and unmanaged resources can be referenced and + disposed. If disposing == false, the method has been called by the + runtime from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources must + be referenced or disposed. + + + + indicates whether the Dispose method was invoked by user code. + + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Flush the stream. + + + + + Reading this property always throws a . + + + + + The position of the stream pointer. + + + + Setting this property always throws a . Reading will return the total bytes + written out, if used in writing, or the total bytes read in, if used in + reading. The count may refer to compressed bytes or uncompressed bytes, + depending on how you've used the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, + you can create a ZlibStream with CompressionMode.Compress, + providing an uncompressed data stream. Then call Read() on that + ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create + a ZlibStream with CompressionMode.Decompress, providing a + readable compressed data stream. Then call Read() on that + ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but + not both. + + + + + + The buffer into which the read data should be placed. + + + the offset within that data array to put the first byte read. + + the number of bytes to read. + + the number of bytes read + + + + Calling this method always throws a . + + + The offset to seek to.... + IF THIS METHOD ACTUALLY DID ANYTHING. + + + The reference specifying how to apply the offset.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + nothing. This method always throws. + + + + Calling this method always throws a . + + + The new value for the stream length.... IF + THIS METHOD ACTUALLY DID ANYTHING. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, + you can create a ZlibStream with CompressionMode.Compress, + and a writable output stream. Then call Write() on that + ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you + wish to use the ZlibStream to decompress data while writing, you + can create a ZlibStream with CompressionMode.Decompress, and a + writable output stream. Then call Write() on that stream, + providing previously compressed data. The data sent to the output stream + will be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Compress a string into a byte array using ZLIB. + + + + Uncompress it with . + + + + + + + + A string to compress. The string will first be encoded + using UTF8, then compressed. + + + The string in compressed form + + + + Compress a byte array into a new byte array using ZLIB. + + + + Uncompress it with . + + + + + + + A buffer to compress. + + + The data in compressed form + + + + Uncompress a ZLIB-compressed byte array into a single string. + + + + + + + A buffer containing ZLIB-compressed data. + + + The uncompressed string + + + + Uncompress a ZLIB-compressed byte array into a byte array. + + + + + + + A buffer containing ZLIB-compressed data. + + + The data in uncompressed form + + + + This class exposes a set of COM-accessible wrappers for static + methods available on the ZipFile class. You don't need this + class unless you are using DotNetZip from a COM environment. + + + + + A wrapper for ZipFile.IsZipFile(string) + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.IsZipFile(string, bool) + + + We cannot use "overloaded" Method names in COM interop. + So, here, we use a unique name. + + The filename to of the zip file to check. + true if the file contains a valid zip file. + + + + A wrapper for ZipFile.CheckZip(string) + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A COM-friendly wrapper for the static method . + + + The filename to of the zip file to check. + + The password to check. + + true if the named zip file checks OK. Otherwise, false. + + + + A wrapper for ZipFile.FixZipDirectory(string) + + The filename to of the zip file to fix. + + + + A wrapper for ZipFile.LibraryVersion + + + the version number on the DotNetZip assembly, formatted as a string. + + + + + An enum that provides the various encryption algorithms supported by this + library. + + + + + + PkzipWeak implies the use of Zip 2.0 encryption, which is known to be + weak and subvertible. + + + + A note on interoperability: Values of PkzipWeak and None are + specified in PKWARE's zip + specification, and are considered to be "standard". Zip archives + produced using these options will be interoperable with many other zip tools + and libraries, including Windows Explorer. + + + + Values of WinZipAes128 and WinZipAes256 are not part of the Zip + specification, but rather imply the use of a vendor-specific extension from + WinZip. If you want to produce interoperable Zip archives, do not use these + values. For example, if you produce a zip archive using WinZipAes256, you + will be able to open it in Windows Explorer on Windows XP and Vista, but you + will not be able to extract entries; trying this will lead to an "unspecified + error". For this reason, some people have said that a zip archive that uses + WinZip's AES encryption is not actually a zip archive at all. A zip archive + produced this way will be readable with the WinZip tool (Version 11 and + beyond). + + + + There are other third-party tools and libraries, both commercial and + otherwise, that support WinZip's AES encryption. These will be able to read + AES-encrypted zip archives produced by DotNetZip, and conversely applications + that use DotNetZip to read zip archives will be able to read AES-encrypted + archives produced by those tools or libraries. Consult the documentation for + those other tools and libraries to find out if WinZip's AES encryption is + supported. + + + + In case you care: According to the WinZip specification, the + actual AES key used is derived from the via an + algorithm that complies with RFC 2898, using an iteration + count of 1000. The algorithm is sometimes referred to as PBKDF2, which stands + for "Password Based Key Derivation Function #2". + + + + A word about password strength and length: The AES encryption technology is + very good, but any system is only as secure as the weakest link. If you want + to secure your data, be sure to use a password that is hard to guess. To make + it harder to guess (increase its "entropy"), you should make it longer. If + you use normal characters from an ASCII keyboard, a password of length 20 will + be strong enough that it will be impossible to guess. For more information on + that, I'd encourage you to read this + article. + + + + + + + No encryption at all. + + + + + Traditional or Classic pkzip encryption. + + + + + WinZip AES encryption (128 key bits). + + + + + WinZip AES encryption (256 key bits). + + + + + An encryption algorithm that is not supported by DotNetZip. + + + + + Delegate in which the application writes the ZipEntry content for the named entry. + + + The name of the entry that must be written. + The stream to which the entry data should be written. + + + When you add an entry and specify a WriteDelegate, via , the application + code provides the logic that writes the entry data directly into the zip file. + + + + + This example shows how to define a WriteDelegate that obtains a DataSet, and then + writes the XML for the DataSet into the zip archive. There's no need to + save the XML to a disk file first. + + + private void WriteEntry (String filename, Stream output) + { + DataSet ds1 = ObtainDataSet(); + ds1.WriteXml(output); + } + + private void Run() + { + using (var zip = new ZipFile()) + { + zip.AddEntry(zipEntryName, WriteEntry); + zip.Save(zipFileName); + } + } + + + + Private Sub WriteEntry (ByVal filename As String, ByVal output As Stream) + DataSet ds1 = ObtainDataSet() + ds1.WriteXml(stream) + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + + Delegate in which the application opens the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should open the stream for. + + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate in which the application closes the stream, just-in-time, for the named entry. + + + + The name of the ZipEntry that the application should close the stream for. + + + The stream to be closed. + + + When you add an entry via , the application code provides the logic that + opens and closes the stream for the given ZipEntry. + + + + + + + Delegate for the callback by which the application tells the + library the CompressionLevel to use for a file. + + + + + Using this callback, the application can, for example, specify that + previously-compressed files (.mp3, .png, .docx, etc) should use a + CompressionLevel of None, or can set the compression level based + on any other factor. + + + + + + + In an EventArgs type, indicates which sort of progress event is being + reported. + + + There are events for reading, events for saving, and events for + extracting. This enumeration allows a single EventArgs type to be sued to + describe one of multiple subevents. For example, a SaveProgress event is + invoked before, after, and during the saving of a single entry. The value + of an enum with this type, specifies which event is being triggered. The + same applies to Extraction, Reading and Adding events. + + + + + Indicates that a Add() operation has started. + + + + + Indicates that an individual entry in the archive has been added. + + + + + Indicates that a Add() operation has completed. + + + + + Indicates that a Read() operation has started. + + + + + Indicates that an individual entry in the archive is about to be read. + + + + + Indicates that an individual entry in the archive has just been read. + + + + + Indicates that a Read() operation has completed. + + + + + The given event reports the number of bytes read so far + during a Read() operation. + + + + + Indicates that a Save() operation has started. + + + + + Indicates that an individual entry in the archive is about to be written. + + + + + Indicates that an individual entry in the archive has just been saved. + + + + + Indicates that a Save() operation has completed. + + + + + Indicates that the zip archive has been created in a + temporary location during a Save() operation. + + + + + Indicates that the temporary file is about to be renamed to the final archive + name during a Save() operation. + + + + + Indicates that the temporary file is has just been renamed to the final archive + name during a Save() operation. + + + + + Indicates that the self-extracting archive has been compiled + during a Save() operation. + + + + + The given event is reporting the number of source bytes that have run through the compressor so far + during a Save() operation. + + + + + Indicates that an entry is about to be extracted. + + + + + Indicates that an entry has just been extracted. + + + + + Indicates that extraction of an entry would overwrite an existing + filesystem file. You must use + + ExtractExistingFileAction.InvokeExtractProgressEvent in the call + to ZipEntry.Extract() in order to receive this event. + + + + + The given event is reporting the number of bytes written so far for + the current entry during an Extract() operation. + + + + + Indicates that an ExtractAll operation is about to begin. + + + + + Indicates that an ExtractAll operation has completed. + + + + + Indicates that an error has occurred while saving a zip file. + This generally means the file cannot be opened, because it has been + removed, or because it is locked by another process. It can also + mean that the file cannot be Read, because of a range lock conflict. + + + + + Provides information about the progress of a save, read, or extract operation. + This is a base class; you will probably use one of the classes derived from this one. + + + + + The total number of entries to be saved or extracted. + + + + + The name of the last entry saved or extracted. + + + + + In an event handler, set this to cancel the save or extract + operation that is in progress. + + + + + The type of event being reported. + + + + + Returns the archive name associated to this event. + + + + + The number of bytes read or written so far for this entry. + + + + + Total number of bytes that will be read or written for this entry. + This number will be -1 if the value cannot be determined. + + + + + Provides information about the progress of a Read operation. + + + + + Provides information about the progress of a Add operation. + + + + + Provides information about the progress of a save operation. + + + + + Constructor for the SaveProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been saved. + The entry involved in the event. + + + + Number of entries saved so far. + + + + + Provides information about the progress of the extract operation. + + + + + Constructor for the ExtractProgressEventArgs. + + the name of the zip archive. + whether this is before saving the entry, or after + The total number of entries in the zip archive. + Number of entries that have been extracted. + The entry involved in the event. + The location to which entries are extracted. + + + + Number of entries extracted so far. This is set only if the + EventType is Extracting_BeforeExtractEntry or Extracting_AfterExtractEntry, and + the Extract() is occurring witin the scope of a call to ExtractAll(). + + + + + Returns the extraction target location, a filesystem path. + + + + + Provides information about the an error that occurred while zipping. + + + + + Returns the exception that occurred, if any. + + + + + Returns the name of the file that caused the exception, if any. + + + + + Issued when an ZipEntry.ExtractWithPassword() method is invoked + with an incorrect password. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that a read was attempted on a stream, and bad or incomplete data was + received. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when an CRC check fails upon extracting an entry from a zip archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Issued when errors occur saving a self-extracting archive. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Indicates that an operation was attempted on a ZipFile which was not possible + given the state of the instance. For example, if you call Save() on a ZipFile + which has no filename set, you can get this exception. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + Base class for all exceptions defined by and throw by the Zip library. + + + + + Default ctor. + + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The message in the exception. + The innerException for this exception. + + + + Come on, you know how exceptions work. Why are you looking at this documentation? + + The serialization info for the exception. + The streaming context from which to deserialize. + + + + An enum for the options when extracting an entry would overwrite an existing file. + + + + + This enum describes the actions that the library can take when an + Extract() or ExtractWithPassword() method is called to extract an + entry to a filesystem, and the extraction would overwrite an existing filesystem + file. + + + + + + + Throw an exception when extraction would overwrite an existing file. (For + COM clients, this is a 0 (zero).) + + + + + When extraction would overwrite an existing file, overwrite the file silently. + The overwrite will happen even if the target file is marked as read-only. + (For COM clients, this is a 1.) + + + + + When extraction would overwrite an existing file, don't overwrite the file, silently. + (For COM clients, this is a 2.) + + + + + When extraction would overwrite an existing file, invoke the ExtractProgress + event, using an event type of . In + this way, the application can decide, just-in-time, whether to overwrite the + file. For example, a GUI application may wish to pop up a dialog to allow + the user to choose. You may want to examine the property before making + the decision. If, after your processing in the Extract progress event, you + want to NOT extract the file, set + on the ZipProgressEventArgs.CurrentEntry to DoNotOverwrite. + If you do want to extract the file, set ZipEntry.ExtractExistingFile + to OverwriteSilently. If you want to cancel the Extraction, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + DoNotOverwrite in that a cancel will not extract any further entries, if + there are any. (For COM clients, the value of this enum is a 3.) + + + + + Collects general purpose utility methods. + + + + private null constructor + + + + Utility routine for transforming path names from filesystem format (on Windows that means backslashes) to + a format suitable for use within zipfiles. This means trimming the volume letter and colon (if any) And + swapping backslashes for forward slashes. + + source path. + transformed path + + + + Sanitize paths in zip files. This means making sure that relative paths in a zip file don't go outside + the top directory. Entries like something/../../../../Temp/evil.txt get sanitized to Temp/evil.txt + when extracting + + A path with forward slashes as directory separator + sanitized path + + + + Finds a signature in the zip stream. This is useful for finding + the end of a zip entry, for example, or the beginning of the next ZipEntry. + + + + + Scans through 64k at a time. + + + + If the method fails to find the requested signature, the stream Position + after completion of this method is unchanged. If the method succeeds in + finding the requested signature, the stream position after completion is + direct AFTER the signature found in the stream. + + + + The stream to search + The 4-byte signature to find + The number of bytes read + + + + Create a pseudo-random filename, suitable for use as a temporary + file, and open it. + + + + This method produces a filename of the form + DotNetZip-xxxxxxxx.tmp, where xxxxxxxx is replaced by randomly + chosen characters, and creates that file. + + + + + + Workitem 7889: handle ERROR_LOCK_VIOLATION during read + + + This could be gracefully handled with an extension attribute, but + This assembly used to be built for .NET 2.0, so could not use + extension methods. + + + + + A decorator stream. It wraps another stream, and performs bookkeeping + to keep track of the stream Position. + + + + In some cases, it is not possible to get the Position of a stream, let's + say, on a write-only output stream like ASP.NET's + Response.OutputStream, or on a different write-only stream + provided as the destination for the zip by the application. In this + case, programmers can use this counting stream to count the bytes read + or written. + + + Consider the scenario of an application that saves a self-extracting + archive (SFX), that uses a custom SFX stub. + + + Saving to a filesystem file, the application would open the + filesystem file (getting a FileStream), save the custom sfx stub + into it, and then call ZipFile.Save(), specifying the same + FileStream. ZipFile.Save() does the right thing for the zipentry + offsets, by inquiring the Position of the FileStream before writing + any data, and then adding that initial offset into any ZipEntry + offsets in the zip directory. Everything works fine. + + + Now suppose the application is an ASPNET application and it saves + directly to Response.OutputStream. It's not possible for DotNetZip to + inquire the Position, so the offsets for the SFX will be wrong. + + + The workaround is for the application to use this class to wrap + HttpResponse.OutputStream, then write the SFX stub and the ZipFile + into that wrapper stream. Because ZipFile.Save() can inquire the + Position, it will then do the right thing with the offsets. + + + + + + The constructor. + + The underlying stream + + + + Gets the wrapped stream. + + + + + The count of bytes written out to the stream. + + + + + the count of bytes that have been read from the stream. + + + + + Adjust the byte count on the stream. + + + + the number of bytes to subtract from the count. + + + + + Subtract delta from the count of bytes written to the stream. + This is necessary when seeking back, and writing additional data, + as happens in some cases when saving Zip files. + + + + + + The read method. + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Write data into the stream. + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Whether the stream can be read. + + + + + Whether it is possible to call Seek() on the stream. + + + + + Whether it is possible to call Write() on the stream. + + + + + Flushes the underlying stream. + + + + + The length of the underlying stream. + + + + + Returns the sum of number of bytes written, plus the initial + offset before writing. + + + + + The Position of the stream. + + + + + Seek in the stream. + + the offset point to seek to + the reference point from which to seek + The new position + + + + Set the length of the underlying stream. Be careful with this! + + + the length to set on the underlying stream. + + + + This is a helper class supporting WinZip AES encryption. + This class is intended for use only by the DotNetZip library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the WinZipAesCrypto class. Instead, the WinZipAesCrypto class is + instantiated and used by the ZipEntry() class when WinZip AES + encryption or decryption on an entry is employed. + + + + + A stream that encrypts as it writes, or decrypts as it reads. The + Crypto is AES in CTR (counter) mode, which is compatible with the AES + encryption employed by WinZip 12.0. + + + + The AES/CTR encryption protocol used by WinZip works like this: + + - start with a counter, initialized to zero. + + - to encrypt, take the data by 16-byte blocks. For each block: + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the plaintext to + get the ciphertext. + - compute the mac on the encrypted bytes + - when finished with all blocks, store the computed MAC. + + - to decrypt, take the data by 16-byte blocks. For each block: + - compute the mac on the encrypted bytes, + - apply the transform to the counter + - increement the counter + - XOR the result of the transform with the ciphertext to + get the plaintext. + - when finished with all blocks, compare the computed MAC against + the stored MAC + + + + + + + The constructor. + + The underlying stream + To either encrypt or decrypt. + The pre-initialized WinZipAesCrypto object. + The maximum number of bytes to read from the stream. + + + + Returns the final HMAC-SHA1-80 for the data that was encrypted. + + + + + Close the stream. + + + + + Returns true if the stream can be read. + + + + + Always returns false. + + + + + Returns true if the CryptoMode is Encrypt. + + + + + Flush the content in the stream. + + + + + Getting this property throws a NotImplementedException. + + + + + Getting or Setting this property throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This method throws a NotImplementedException. + + + + + This class implements the "traditional" or "classic" PKZip encryption, + which today is considered to be weak. On the other hand it is + ubiquitous. This class is intended for use only by the DotNetZip + library. + + + + Most uses of the DotNetZip library will not involve direct calls into + the ZipCrypto class. Instead, the ZipCrypto class is instantiated and + used by the ZipEntry() class when encryption or decryption on an entry + is employed. If for some reason you really wanted to use a weak + encryption algorithm in some other application, you might use this + library. But you would be much better off using one of the built-in + strong encryption libraries in the .NET Framework, like the AES + algorithm or SHA. + + + + + The default constructor for ZipCrypto. + + + + This class is intended for internal use by the library only. It's + probably not useful to you. Seriously. Stop reading this + documentation. It's a waste of your time. Go do something else. + Check the football scores. Go get an ice cream with a friend. + Seriously. + + + + + + From AppNote.txt: + unsigned char decrypt_byte() + local unsigned short temp + temp :=- Key(2) | 2 + decrypt_byte := (temp * (temp ^ 1)) bitshift-right 8 + end decrypt_byte + + + + + Call this method on a cipher text to render the plaintext. You must + first initialize the cipher with a call to InitCipher. + + + + + var cipher = new ZipCrypto(); + cipher.InitCipher(Password); + // Decrypt the header. This has a side effect of "further initializing the + // encryption keys" in the traditional zip encryption. + byte[] DecryptedMessage = cipher.DecryptMessage(EncryptedMessage); + + + + The encrypted buffer. + + The number of bytes to encrypt. + Should be less than or equal to CipherText.Length. + + + The plaintext. + + + + This is the converse of DecryptMessage. It encrypts the plaintext + and produces a ciphertext. + + + The plain text buffer. + + + The number of bytes to encrypt. + Should be less than or equal to plainText.Length. + + + The ciphertext. + + + + This initializes the cipher with the given password. + See AppNote.txt for details. + + + + The passphrase for encrypting or decrypting with this cipher. + + + + + Step 1 - Initializing the encryption keys + ----------------------------------------- + Start with these keys: + Key(0) := 305419896 (0x12345678) + Key(1) := 591751049 (0x23456789) + Key(2) := 878082192 (0x34567890) + + Then, initialize the keys with a password: + + loop for i from 0 to length(password)-1 + update_keys(password(i)) + end loop + + Where update_keys() is defined as: + + update_keys(char): + Key(0) := crc32(key(0),char) + Key(1) := Key(1) + (Key(0) bitwiseAND 000000ffH) + Key(1) := Key(1) * 134775813 + 1 + Key(2) := crc32(key(2),key(1) rightshift 24) + end update_keys + + Where crc32(old_crc,char) is a routine that given a CRC value and a + character, returns an updated CRC value after applying the CRC-32 + algorithm described elsewhere in this document. + + + + + After the keys are initialized, then you can use the cipher to + encrypt the plaintext. + + + + Essentially we encrypt the password with the keys, then discard the + ciphertext for the password. This initializes the keys for later use. + + + + + + + A Stream for reading and concurrently decrypting data from a zip file, + or for writing and concurrently encrypting data to a zip file. + + + + The constructor. + The underlying stream + To either encrypt or decrypt. + The pre-initialized ZipCrypto object. + + + + Represents a single entry in a ZipFile. Typically, applications get a ZipEntry + by enumerating the entries within a ZipFile, or by adding an entry to a ZipFile. + + + + + True if the referenced entry is a directory. + + + + + Provides a human-readable string with information about the ZipEntry. + + + + + Reads one entry from the zip directory structure in the zip file. + + + + The zipfile for which a directory entry will be read. From this param, the + method gets the ReadStream and the expected text encoding + (ProvisionalAlternateEncoding) which is used if the entry is not marked + UTF-8. + + + + a list of previously seen entry names; used to prevent duplicates. + + + the entry read from the archive. + + + + Returns true if the passed-in value is a valid signature for a ZipDirEntry. + + the candidate 4-byte signature value. + true, if the signature is valid according to the PKWare spec. + + + + Default constructor. + + + Applications should never need to call this directly. It is exposed to + support COM Automation environments. + + + + + The time and date at which the file indicated by the ZipEntry was + last modified. + + + + + The DotNetZip library sets the LastModified value for an entry, equal to + the Last Modified time of the file in the filesystem. If an entry is + added from a stream, the library uses System.DateTime.Now for this + value, for the given entry. + + + + This property allows the application to retrieve and possibly set the + LastModified value on an entry, to an arbitrary value. values with a + setting of DateTimeKind.Unspecified are taken to be expressed as + DateTimeKind.Local. + + + + Be aware that because of the way PKWare's + Zip specification describes how times are stored in the zip file, + the full precision of the System.DateTime datatype is not stored + for the last modified time when saving zip files. For more information on + how times are formatted, see the PKZip specification. + + + + The actual last modified time of a file can be stored in multiple ways in + the zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + Zip tools and libraries will always at least handle (read or write) the + DOS time, and may also handle the other time formats. Keep in mind that + while the names refer to particular operating systems, there is nothing in + the time formats themselves that prevents their use on other operating + systems. + + + + When reading ZIP files, the DotNetZip library reads the Windows-formatted + time, if it is stored in the entry, and sets both LastModified and + ModifiedTime to that value. When writing ZIP files, the DotNetZip + library by default will write both time quantities. It can also emit the + Unix-formatted time if desired (See .) + + + + The last modified time of the file created upon a call to + ZipEntry.Extract() may be adjusted during extraction to compensate + for differences in how the .NET Base Class Library deals with daylight + saving time (DST) versus how the Windows filesystem deals with daylight + saving time. Raymond Chen provides + some good context. + + + + In a nutshell: Daylight savings time rules change regularly. In 2007, for + example, the inception week of DST changed. In 1977, DST was in place all + year round. In 1945, likewise. And so on. Win32 does not attempt to + guess which time zone rules were in effect at the time in question. It + will render a time as "standard time" and allow the app to change to DST + as necessary. .NET makes a different choice. + + + + Compare the output of FileInfo.LastWriteTime.ToString("f") with what you + see in the Windows Explorer property sheet for a file that was last + written to on the other side of the DST transition. For example, suppose + the file was last modified on October 17, 2003, during DST but DST is not + currently in effect. Explorer's file properties reports Thursday, October + 17, 2003, 8:45:38 AM, but .NETs FileInfo reports Thursday, October 17, + 2003, 9:45 AM. + + + + Win32 says, "Thursday, October 17, 2002 8:45:38 AM PST". Note: Pacific + STANDARD Time. Even though October 17 of that year occurred during Pacific + Daylight Time, Win32 displays the time as standard time because that's + what time it is NOW. + + + + .NET BCL assumes that the current DST rules were in place at the time in + question. So, .NET says, "Well, if the rules in effect now were also in + effect on October 17, 2003, then that would be daylight time" so it + displays "Thursday, October 17, 2003, 9:45 AM PDT" - daylight time. + + + + So .NET gives a value which is more intuitively correct, but is also + potentially incorrect, and which is not invertible. Win32 gives a value + which is intuitively incorrect, but is strictly correct. + + + + Because of this funkiness, this library adds one hour to the LastModified + time on the extracted file, if necessary. That is to say, if the time in + question had occurred in what the .NET Base Class Library assumed to be + DST. This assumption may be wrong given the constantly changing DST rules, + but it is the best we can do. + + + + + + + + Ability to set Last Modified DOS time to zero + (for using with EmitTimesInWindowsFormatWhenSaving+EmitTimesInUnixFormatWhenSaving setted to false) + some flasher hardware use as marker of first binary + + + + + Last Modified time for the file represented by the entry. + + + + + + This value corresponds to the "last modified" time in the NTFS file times + as described in the Zip + specification. When getting this property, the value may be + different from . When setting the property, + the property also gets set, but with a lower + precision. + + + + Let me explain. It's going to take a while, so get + comfortable. Originally, waaaaay back in 1989 when the ZIP specification + was originally described by the esteemed Mr. Phil Katz, the dominant + operating system of the time was MS-DOS. MSDOS stored file times with a + 2-second precision, because, c'mon, who is ever going to need better + resolution than THAT? And so ZIP files, regardless of the platform on + which the zip file was created, store file times in exactly the same format that DOS used + in 1989. + + + + Since then, the ZIP spec has evolved, but the internal format for file + timestamps remains the same. Despite the fact that the way times are + stored in a zip file is rooted in DOS heritage, any program on any + operating system can format a time in this way, and most zip tools and + libraries DO - they round file times to the nearest even second and store + it just like DOS did 25+ years ago. + + + + PKWare extended the ZIP specification to allow a zip file to store what + are called "NTFS Times" and "Unix(tm) times" for a file. These are the + last write, last access, and file creation + times of a particular file. These metadata are not actually specific + to NTFS or Unix. They are tracked for each file by NTFS and by various + Unix filesystems, but they are also tracked by other filesystems, too. + The key point is that the times are formatted in the zip file + in the same way that NTFS formats the time (ticks since win32 epoch), + or in the same way that Unix formats the time (seconds since Unix + epoch). As with the DOS time, any tool or library running on any + operating system is capable of formatting a time in one of these ways + and embedding it into the zip file. + + + + These extended times are higher precision quantities than the DOS time. + As described above, the (DOS) LastModified has a precision of 2 seconds. + The Unix time is stored with a precision of 1 second. The NTFS time is + stored with a precision of 0.0000001 seconds. The quantities are easily + convertible, except for the loss of precision you may incur. + + + + A zip archive can store the {C,A,M} times in NTFS format, in Unix format, + or not at all. Often a tool running on Unix or Mac will embed the times + in Unix format (1 second precision), while WinZip running on Windows might + embed the times in NTFS format (precision of of 0.0000001 seconds). When + reading a zip file with these "extended" times, in either format, + DotNetZip represents the values with the + ModifiedTime, AccessedTime and CreationTime + properties on the ZipEntry. + + + + While any zip application or library, regardless of the platform it + runs on, could use any of the time formats allowed by the ZIP + specification, not all zip tools or libraries do support all these + formats. Storing the higher-precision times for each entry is + optional for zip files, and many tools and libraries don't use the + higher precision quantities at all. The old DOS time, represented by + , is guaranteed to be present, though it + sometimes unset. + + + + Ok, getting back to the question about how the LastModified + property relates to this ModifiedTime + property... LastModified is always set, while + ModifiedTime is not. (The other times stored in the NTFS + times extension, CreationTime and AccessedTime also + may not be set on an entry that is read from an existing zip file.) + When reading a zip file, then LastModified takes the DOS time + that is stored with the file. If the DOS time has been stored as zero + in the zipfile, then this library will use DateTime.Now for the + LastModified value. If the ZIP file was created by an evolved + tool, then there will also be higher precision NTFS or Unix times in + the zip file. In that case, this library will read those times, and + set LastModified and ModifiedTime to the same value, the + one corresponding to the last write time of the file. If there are no + higher precision times stored for the entry, then ModifiedTime + remains unset (likewise AccessedTime and CreationTime), + and LastModified keeps its DOS time. + + + + When creating zip files with this library, by default the extended time + properties (ModifiedTime, AccessedTime, and + CreationTime) are set on the ZipEntry instance, and these data are + stored in the zip archive for each entry, in NTFS format. If you add an + entry from an actual filesystem file, then the entry gets the actual file + times for that file, to NTFS-level precision. If you add an entry from a + stream, or a string, then the times get the value DateTime.Now. In + this case LastModified and ModifiedTime will be identical, + to 2 seconds of precision. You can explicitly set the + CreationTime, AccessedTime, and ModifiedTime of an + entry using the property setters. If you want to set all of those + quantities, it's more efficient to use the method. Those + changes are not made permanent in the zip file until you call or one of its cousins. + + + + When creating a zip file, you can override the default behavior of + this library for formatting times in the zip file, disabling the + embedding of file times in NTFS format or enabling the storage of file + times in Unix format, or both. You may want to do this, for example, + when creating a zip file on Windows, that will be consumed on a Mac, + by an application that is not hip to the "NTFS times" format. To do + this, use the and + properties. A valid zip + file may store the file times in both formats. But, there are no + guarantees that a program running on Mac or Linux will gracefully + handle the NTFS-formatted times when Unix times are present, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. DotNetZip will always do something + reasonable; other libraries or tools may not. When in doubt, test. + + + + I'll bet you didn't think one person could type so much about time, eh? + And reading it was so enjoyable, too! Well, in appreciation, maybe you + should donate? + + + + + + + + + + + Last Access time for the file represented by the entry. + + + This value may or may not be meaningful. If the ZipEntry was read from an existing + Zip archive, this information may not be available. For an explanation of why, see + . + + + + + + + + The file creation time for the file represented by the entry. + + + + This value may or may not be meaningful. If the ZipEntry was read + from an existing zip archive, and the creation time was not set on the entry + when the zip file was created, then this property may be meaningless. For an + explanation of why, see . + + + + + + + + Sets the NTFS Creation, Access, and Modified times for the given entry. + + + + + When adding an entry from a file or directory, the Creation, Access, and + Modified times for the given entry are automatically set from the + filesystem values. When adding an entry from a stream or string, the + values are implicitly set to DateTime.Now. The application may wish to + set these values to some arbitrary value, before saving the archive, and + can do so using the various setters. If you want to set all of the times, + this method is more efficient. + + + + The values you set here will be retrievable with the , and properties. + + + + When this method is called, if both and are false, then the + EmitTimesInWindowsFormatWhenSaving flag is automatically set. + + + + DateTime values provided here without a DateTimeKind are assumed to be Local Time. + + + + the creation time of the entry. + the last access time of the entry. + the last modified time of the entry. + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Windows format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Windows. The default value of + this property is true. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all zip tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInWindowsFormatWhenSaving + property, to specify the behavior for all entries in a zip, rather than + the property on each individual entry. + + + + + + + + + + + + + Specifies whether the Creation, Access, and Modified times for the given + entry will be emitted in "Unix(tm) format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entry should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified + () times for the given entry are automatically + set from the filesystem values. When adding an entry from a stream or + string, all three values are implicitly set to DateTime.Now. Applications + can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since Jan 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since Jan 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Although the time values are + easily convertible, subject to a loss of precision, some tools and + libraries may be able to read only one or the other. DotNetZip can read or + write times in either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive from the property. It is + possible that a zip entry can embed the timestamps in both forms, one + form, or neither. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle NTFS Formatted times, or that a + non-DotNetZip-powered application running on Windows will be able to + handle file times in Unix format. When in doubt, test. + + + + Normally you will use the ZipFile.EmitTimesInUnixFormatWhenSaving + property, to specify the behavior for all entries, rather than the + property on each individual entry. + + + + + + + + + + + + + The type of timestamp attached to the ZipEntry. + + + + This property is valid only for a ZipEntry that was read from a zip archive. + It indicates the type of timestamp attached to the entry. + + + + + + + + The file attributes for the entry. + + + + + + The attributes in NTFS include + ReadOnly, Archive, Hidden, System, and Indexed. When adding a + ZipEntry to a ZipFile, these attributes are set implicitly when + adding an entry from the filesystem. When adding an entry from a stream + or string, the Attributes are not set implicitly. Regardless of the way + an entry was added to a ZipFile, you can set the attributes + explicitly if you like. + + + + When reading a ZipEntry from a ZipFile, the attributes are + set according to the data stored in the ZipFile. If you extract the + entry from the archive to a filesystem file, DotNetZip will set the + attributes on the resulting file accordingly. + + + + The attributes can be set explicitly by the application. For example the + application may wish to set the FileAttributes.ReadOnly bit for all + entries added to an archive, so that on unpack, this attribute will be set + on the extracted file. Any changes you make to this property are made + permanent only when you call a Save() method on the ZipFile + instance that contains the ZipEntry. + + + + For example, an application may wish to zip up a directory and set the + ReadOnly bit on every file in the archive, so that upon later extraction, + the resulting files will be marked as ReadOnly. Not every extraction tool + respects these attributes, but if you unpack with DotNetZip, as for + example in a self-extracting archive, then the attributes will be set as + they are stored in the ZipFile. + + + + These attributes may not be interesting or useful if the resulting archive + is extracted on a non-Windows platform. How these attributes get used + upon extraction depends on the platform and tool used. + + + + + + + The name of the filesystem file, referred to by the ZipEntry. + + + + + This property specifies the thing-to-be-zipped on disk, and is set only + when the ZipEntry is being created from a filesystem file. If the + ZipFile is instantiated by reading an existing .zip archive, then + the LocalFileName will be null (Nothing in VB). + + + + When it is set, the value of this property may be different than , which is the path used in the archive itself. If you + call Zip.AddFile("foop.txt", AlternativeDirectory), then the path + used for the ZipEntry within the zip archive will be different + than this path. + + + + If the entry is being added from a stream, then this is null (Nothing in VB). + + + + + + + + The name of the file contained in the ZipEntry. + + + + + + This is the name of the entry in the ZipFile itself. When creating + a zip archive, if the ZipEntry has been created from a filesystem + file, via a call to or , or a related overload, the value + of this property is derived from the name of that file. The + FileName property does not include drive letters, and may include a + different directory path, depending on the value of the + directoryPathInArchive parameter used when adding the entry into + the ZipFile. + + + + In some cases there is no related filesystem file - for example when a + ZipEntry is created using or one of the similar overloads. In this case, the value of + this property is derived from the fileName and the directory path passed + to that method. + + + + When reading a zip file, this property takes the value of the entry name + as stored in the zip file. If you extract such an entry, the extracted + file will take the name given by this property. + + + + Applications can set this property when creating new zip archives or when + reading existing archives. When setting this property, the actual value + that is set will replace backslashes with forward slashes, in accordance + with the Zip + specification, for compatibility with Unix(tm) and ... get + this.... Amiga! + + + + If an application reads a ZipFile via or a related overload, and then explicitly + sets the FileName on an entry contained within the ZipFile, and + then calls , the application will effectively + rename the entry within the zip archive. + + + + If an application sets the value of FileName, then calls + Extract() on the entry, the entry is extracted to a file using the + newly set value as the filename. The FileName value is made + permanent in the zip archive only after a call to one of the + ZipFile.Save() methods on the ZipFile that contains the + ZipEntry. + + + + If an application attempts to set the FileName to a value that + would result in a duplicate entry in the ZipFile, an exception is + thrown. + + + + When a ZipEntry is contained within a ZipFile, applications + cannot rename the entry within the context of a foreach (For + Each in VB) loop, because of the way the ZipFile stores + entries. If you need to enumerate through all the entries and rename one + or more of them, use ZipFile.EntriesSorted as the + collection. See also, ZipFile.GetEnumerator(). + + + + + + + The stream that provides content for the ZipEntry. + + + + + + The application can use this property to set the input stream for an + entry on a just-in-time basis. Imagine a scenario where the application + creates a ZipFile comprised of content obtained from hundreds of + files, via calls to AddFile(). The DotNetZip library opens streams + on these files on a just-in-time basis, only when writing the entry out to + an external store within the scope of a ZipFile.Save() call. Only + one input stream is opened at a time, as each entry is being written out. + + + + Now imagine a different application that creates a ZipFile + with content obtained from hundreds of streams, added through . Normally the + application would supply an open stream to that call. But when large + numbers of streams are being added, this can mean many open streams at one + time, unnecessarily. + + + + To avoid this, call and specify delegates that open and close the stream at + the time of Save. + + + + + Setting the value of this property when the entry was not added from a + stream (for example, when the ZipEntry was added with or , or when the entry was added by + reading an existing zip archive) will throw an exception. + + + + + + + + A flag indicating whether the InputStream was provided Just-in-time. + + + + + + When creating a zip archive, an application can obtain content for one or + more of the ZipEntry instances from streams, using the method. At the time + of calling that method, the application can supply null as the value of + the stream parameter. By doing so, the application indicates to the + library that it will provide a stream for the entry on a just-in-time + basis, at the time one of the ZipFile.Save() methods is called and + the data for the various entries are being compressed and written out. + + + + In this case, the application can set the + property, typically within the SaveProgress event (event type: ) for that entry. + + + + The application will later want to call Close() and Dispose() on that + stream. In the SaveProgress event, when the event type is , the application can + do so. This flag indicates that the stream has been provided by the + application on a just-in-time basis and that it is the application's + responsibility to call Close/Dispose on that stream. + + + + + + + + An enum indicating the source of the ZipEntry. + + + + + The version of the zip engine needed to read the ZipEntry. + + + + + This is a readonly property, indicating the version of the Zip + specification that the extracting tool or library must support to + extract the given entry. Generally higher versions indicate newer + features. Older zip engines obviously won't know about new features, and + won't be able to extract entries that depend on those newer features. + + + + + value + Features + + + + 20 + a basic Zip Entry, potentially using PKZIP encryption. + + + + + 45 + The ZIP64 extension is used on the entry. + + + + + 46 + File is compressed using BZIP2 compression* + + + + 50 + File is encrypted using PkWare's DES, 3DES, (broken) RC2 or RC4 + + + + 51 + File is encrypted using PKWare's AES encryption or corrected RC2 encryption. + + + + 52 + File is encrypted using corrected RC2-64 encryption** + + + + 61 + File is encrypted using non-OAEP key wrapping*** + + + + 63 + File is compressed using LZMA, PPMd+, Blowfish, or Twofish + + + + + + There are other values possible, not listed here. DotNetZip supports + regular PKZip encryption, and ZIP64 extensions. DotNetZip cannot extract + entries that require a zip engine higher than 45. + + + + This value is set upon reading an existing zip file, or after saving a zip + archive. + + + + + + The comment attached to the ZipEntry. + + + + + Each entry in a zip file can optionally have a comment associated to + it. The comment might be displayed by a zip tool during extraction, for + example. + + + + By default, the Comment is encoded in IBM437 code page. You can + specify an alternative with and + . + + + + + + + + Indicates whether the entry requires ZIP64 extensions. + + + + + + This property is null (Nothing in VB) until a Save() method on the + containing instance has been called. The property is + non-null (HasValue is true) only after a Save() method has + been called. + + + + After the containing ZipFile has been saved, the Value of this + property is true if any of the following three conditions holds: the + uncompressed size of the entry is larger than 0xFFFFFFFF; the compressed + size of the entry is larger than 0xFFFFFFFF; the relative offset of the + entry within the zip archive is larger than 0xFFFFFFFF. These quantities + are not known until a Save() is attempted on the zip archive and + the compression is applied. + + + + If none of the three conditions holds, then the Value is false. + + + + A Value of false does not indicate that the entry, as saved in the + zip archive, does not use ZIP64. It merely indicates that ZIP64 is + not required. An entry may use ZIP64 even when not required if + the property on the containing + ZipFile instance is set to , or if + the property on the containing + ZipFile instance is set to + and the output stream was not seekable. + + + + + + + + Indicates whether the entry actually used ZIP64 extensions, as it was most + recently written to the output file or stream. + + + + + + This Nullable property is null (Nothing in VB) until a Save() + method on the containing instance has been + called. HasValue is true only after a Save() method has been + called. + + + + The value of this property for a particular ZipEntry may change + over successive calls to Save() methods on the containing ZipFile, + even if the file that corresponds to the ZipEntry does not. This + may happen if other entries contained in the ZipFile expand, + causing the offset for this particular entry to exceed 0xFFFFFFFF. + + + + + + + The bitfield for the entry as defined in the zip spec. You probably + never need to look at this. + + + + + You probably do not need to concern yourself with the contents of this + property, but in case you do: + + + + + bit + meaning + + + + 0 + set if encryption is used. + + + + 1-2 + + set to determine whether normal, max, fast deflation. DotNetZip library + always leaves these bits unset when writing (indicating "normal" + deflation"), but can read an entry with any value here. + + + + + 3 + + Indicates that the Crc32, Compressed and Uncompressed sizes are zero in the + local header. This bit gets set on an entry during writing a zip file, when + it is saved to a non-seekable output stream. + + + + + + 4 + reserved for "enhanced deflating". This library doesn't do enhanced deflating. + + + + 5 + set to indicate the zip is compressed patched data. This library doesn't do that. + + + + 6 + + set if PKWare's strong encryption is used (must also set bit 1 if bit 6 is + set). This bit is not set if WinZip's AES encryption is set. + + + + 7 + not used + + + + 8 + not used + + + + 9 + not used + + + + 10 + not used + + + + 11 + + Language encoding flag (EFS). If this bit is set, the filename and comment + fields for this file must be encoded using UTF-8. This library currently + does not support UTF-8. + + + + + 12 + Reserved by PKWARE for enhanced compression. + + + + 13 + + Used when encrypting the Central Directory to indicate selected data + values in the Local Header are masked to hide their actual values. See + the section in the Zip + specification describing the Strong Encryption Specification for + details. + + + + + 14 + Reserved by PKWARE. + + + + 15 + Reserved by PKWARE. + + + + + + + + + The compression method employed for this ZipEntry. + + + + + + The + Zip specification allows a variety of compression methods. This + library supports just two: 0x08 = Deflate. 0x00 = Store (no compression), + for reading or writing. + + + + When reading an entry from an existing zipfile, the value you retrieve + here indicates the compression method used on the entry by the original + creator of the zip. When writing a zipfile, you can specify either 0x08 + (Deflate) or 0x00 (None). If you try setting something else, you will get + an exception. + + + + You may wish to set CompressionMethod to CompressionMethod.None (0) + when zipping already-compressed data like a jpg, png, or mp3 file. + This can save time and cpu cycles. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionMethod to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionLevel property. If you set the CompressionMethod to a + value other than None, and CompressionLevel is previously + set to None, then CompressionLevel will be set to + Default. + + + + + + + In this example, the first entry added to the zip archive uses the default + behavior - compression is used where it makes sense. The second entry, + the MP3 file, is added to the archive without being compressed. + + using (ZipFile zip = new ZipFile(ZipFileToCreate)) + { + ZipEntry e1= zip.AddFile(@"notes\Readme.txt"); + ZipEntry e2= zip.AddFile(@"music\StopThisTrain.mp3"); + e2.CompressionMethod = CompressionMethod.None; + zip.Save(); + } + + + + Using zip As New ZipFile(ZipFileToCreate) + zip.AddFile("notes\Readme.txt") + Dim e2 as ZipEntry = zip.AddFile("music\StopThisTrain.mp3") + e2.CompressionMethod = CompressionMethod.None + zip.Save + End Using + + + + + + Sets the compression level to be used for the entry when saving the zip + archive. This applies only for CompressionMethod = DEFLATE. + + + + + When using the DEFLATE compression method, Varying the compression + level used on entries can affect the size-vs-speed tradeoff when + compression and decompressing data streams or files. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + When setting this property on a ZipEntry that is read from an + existing zip file, calling ZipFile.Save() will cause the new + CompressionLevel to be used on the entry in the newly saved zip file. + + + + Setting this property may have the side effect of modifying the + CompressionMethod property. If you set the CompressionLevel + to a value other than None, CompressionMethod will be set + to Deflate, if it was previously None. + + + + Setting this property has no effect if the CompressionMethod is something + other than Deflate or None. + + + + + + + + The compressed size of the file, in bytes, within the zip archive. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the compressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The size of the file, in bytes, before compression, or after extraction. + + + + When reading a ZipFile, this value is read in from the existing + zip file. When creating or updating a ZipFile, the uncompressed + size is computed during compression. Therefore the value on a + ZipEntry is valid after a call to Save() (or one of its + overloads) in that case. + + + + + + + The ratio of compressed size to uncompressed size of the ZipEntry. + + + + + This is a ratio of the compressed size to the uncompressed size of the + entry, expressed as a double in the range of 0 to 100+. A value of 100 + indicates no compression at all. It could be higher than 100 when the + compression algorithm actually inflates the data, as may occur for small + files, or uncompressible data that is encrypted. + + + + You could format it for presentation to a user via a format string of + "{3,5:F0}%" to see it as a percentage. + + + + If the size of the original uncompressed file is 0, implying a + denominator of 0, the return value will be zero. + + + + This property is valid after reading in an existing zip file, or after + saving the ZipFile that contains the ZipEntry. You cannot know the + effect of a compression transform until you try it. + + + + + + + The 32-bit CRC (Cyclic Redundancy Check) on the contents of the ZipEntry. + + + + + You probably don't need to concern yourself with this. It is used + internally by DotNetZip to verify files or streams upon extraction. + + The value is a 32-bit + CRC using 0xEDB88320 for the polynomial. This is the same CRC-32 used in + PNG, MPEG-2, and other protocols and formats. It is a read-only property; when + creating a Zip archive, the CRC for each entry is set only after a call to + Save() on the containing ZipFile. When reading an existing zip file, the value + of this property reflects the stored CRC for the entry. + + + + + + True if the entry is a directory (not a file). + This is a readonly property on the entry. + + + + + A derived property that is true if the entry uses encryption. + + + + + This is a readonly property on the entry. When reading a zip file, + the value for the ZipEntry is determined by the data read + from the zip file. After saving a ZipFile, the value of this + property for each ZipEntry indicates whether encryption was + actually used (which will have been true if the was set and the property + was something other than . + + + + + + Set this to specify which encryption algorithm to use for the entry when + saving it to a zip archive. + + + + + + Set this property in order to encrypt the entry when the ZipFile is + saved. When setting this property, you must also set a on the entry. If you set a value other than on this property and do not set a + Password then the entry will not be encrypted. The ZipEntry + data is encrypted as the ZipFile is saved, when you call or one of its cousins on the containing + ZipFile instance. You do not need to specify the Encryption + when extracting entries from an archive. + + + + The Zip specification from PKWare defines a set of encryption algorithms, + and the data formats for the zip archive that support them, and PKWare + supports those algorithms in the tools it produces. Other vendors of tools + and libraries, such as WinZip or Xceed, typically support a + subset of the algorithms specified by PKWare. These tools can + sometimes support additional different encryption algorithms and data + formats, not specified by PKWare. The AES Encryption specified and + supported by WinZip is the most popular example. This library supports a + subset of the complete set of algorithms specified by PKWare and other + vendors. + + + + There is no common, ubiquitous multi-vendor standard for strong encryption + within zip files. There is broad support for so-called "traditional" Zip + encryption, sometimes called Zip 2.0 encryption, as specified + by PKWare, but this encryption is considered weak and + breakable. This library currently supports the Zip 2.0 "weak" encryption, + and also a stronger WinZip-compatible AES encryption, using either 128-bit + or 256-bit key strength. If you want DotNetZip to support an algorithm + that is not currently supported, call the author of this library and maybe + we can talk business. + + + + The class also has a property. In most cases you will use + that property when setting encryption. This property takes + precedence over any Encryption set on the ZipFile itself. + Typically, you would use the per-entry Encryption when most entries in the + zip archive use one encryption algorithm, and a few entries use a + different one. If all entries in the zip file use the same Encryption, + then it is simpler to just set this property on the ZipFile itself, when + creating a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you can + modify the Encryption on an encrypted entry: you can remove encryption + from an entry that was encrypted; you can encrypt an entry that was not + encrypted previously; or, you can change the encryption algorithm. The + changes in encryption are not made permanent until you call Save() on the + ZipFile. To effect changes in encryption, the entry content is + streamed through several transformations, depending on the modification + the application has requested. For example if the entry is not encrypted + and the application sets Encryption to PkzipWeak, then at + the time of Save(), the original entry is read and decompressed, + then re-compressed and encrypted. Conversely, if the original entry is + encrypted with PkzipWeak encryption, and the application sets the + Encryption property to WinZipAes128, then at the time of + Save(), the original entry is decrypted via PKZIP encryption and + decompressed, then re-compressed and re-encrypted with AES. This all + happens automatically within the library, but it can be time-consuming for + large entries. + + + + Additionally, when updating archives, it is not possible to change the + password when changing the encryption algorithm. To change both the + algorithm and the password, you need to Save() the zipfile twice. First + set the Encryption to None, then call Save(). Then set the + Encryption to the new value (not "None"), then call Save() + once again. + + + + The WinZip AES encryption algorithms are not supported on the .NET Compact + Framework. + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other file + uses encryption. + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt") + ZipEntry e1= zip.AddFile("2008-Regional-Sales-Report.pdf"); + e1.Encryption= EncryptionAlgorithm.WinZipAes256; + e1.Password= "Top.Secret.No.Peeking!"; + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + // Specify the password that is used during extraction, for + // all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.AddFile("ReadMe.txt") + Dim e1 as ZipEntry + e1= zip.AddFile("2008-Regional-Sales-Report.pdf") + e1.Encryption= EncryptionAlgorithm.WinZipAes256 + e1.Password= "Top.Secret.No.Peeking!" + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + ' Specify the password that is used during extraction, for + ' all entries that require a password: + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + + Thrown in the setter if EncryptionAlgorithm.Unsupported is specified. + + + ZipEntry.Password + ZipFile.Encryption + + + + The Password to be used when encrypting a ZipEntry upon + ZipFile.Save(), or when decrypting an entry upon Extract(). + + + + + This is a write-only property on the entry. Set this to request that the + entry be encrypted when writing the zip archive, or set it to specify the + password to be used when extracting an existing entry that is encrypted. + + + + The password set here is implicitly used to encrypt the entry during the + operation, or to decrypt during the or operation. If you set + the Password on a ZipEntry after calling Save(), there is no + effect. + + + + Consider setting the property when using a + password. Answering concerns that the standard password protection + supported by all zip tools is weak, WinZip has extended the ZIP + specification with a way to use AES Encryption to protect entries in the + Zip file. Unlike the "PKZIP 2.0" encryption specified in the PKZIP + specification, AES + Encryption uses a standard, strong, tested, encryption + algorithm. DotNetZip can create zip archives that use WinZip-compatible + AES encryption, if you set the property. But, + archives created that use AES encryption may not be readable by all other + tools and libraries. For example, Windows Explorer cannot read a + "compressed folder" (a zip file) that uses AES encryption, though it can + read a zip file that uses "PKZIP encryption." + + + + The class also has a + property. This property takes precedence over any password set on the + ZipFile itself. Typically, you would use the per-entry Password when most + entries in the zip archive use one password, and a few entries use a + different password. If all entries in the zip file use the same password, + then it is simpler to just set this property on the ZipFile itself, + whether creating a zip archive or extracting a zip archive. + + + + Some comments on updating archives: If you read a ZipFile, you + cannot modify the password on any encrypted entry, except by extracting + the entry with the original password (if any), removing the original entry + via , and then adding a new + entry with a new Password. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Password property on that ZipEntry and then + calling Save() on the ZipFile does not update the password + on that entry in the archive. Neither is an exception thrown. Instead, + what happens during the Save() is the existing entry is copied + through to the new zip archive, in its original encrypted form. Upon + re-reading that archive, the entry can be decrypted with its original + password. + + + + If you read a ZipFile, and there is an un-encrypted entry, you can set the + Password on the entry and then call Save() on the ZipFile, and get + encryption on that entry. + + + + + + + This example creates a zip file with two entries, and then extracts the + entries from the zip file. When creating the zip file, the two files are + added to the zip file using password protection. Each entry uses a + different password. During extraction, each file is extracted with the + appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry; + entry= zip.AddFile("Declaration.txt"); + entry.Password= "123456!"; + entry = zip.AddFile("Report.xls"); + entry.Password= "1Secret!"; + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + ZipEntry entry; + entry = zip["Declaration.txt"]; + entry.Password = "123456!"; + entry.Extract("extractDir"); + entry = zip["Report.xls"]; + entry.Password = "1Secret!"; + entry.Extract("extractDir"); + } + + + + + Using zip As New ZipFile + Dim entry as ZipEntry + entry= zip.AddFile("Declaration.txt") + entry.Password= "123456!" + entry = zip.AddFile("Report.xls") + entry.Password= "1Secret!" + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + Dim entry as ZipEntry + entry = zip("Declaration.txt") + entry.Password = "123456!" + entry.Extract("extractDir") + entry = zip("Report.xls") + entry.Password = "1Secret!" + entry.Extract("extractDir") + End Using + + + + + + + ZipFile.Password + + + + The action the library should take when extracting a file that already exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting + an entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file to be + extracted does not already exist. + + + + + + + This example shows how to set the ExtractExistingFile property in + an ExtractProgress event, in response to user input. The + ExtractProgress event is invoked if and only if the + ExtractExistingFile property was previously set to + ExtractExistingFileAction.InvokeExtractProgressEvent. + + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + Console.WriteLine("extract {0} ", e.CurrentEntry.FileName); + + else if (e.EventType == ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite) + { + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user if he wants overwrite the file + do + { + Console.Write("Overwrite {0} in {1} ? (y/n/C) ", entry.FileName, e.ExtractLocation); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && response[0]!='Y' && + response[0]!='N' && response[0]!='C'); + + if (response[0]=='C') + e.Cancel = true; + else if (response[0]=='Y') + entry.ExtractExistingFile = ExtractExistingFileAction.OverwriteSilently; + else + entry.ExtractExistingFile= ExtractExistingFileAction.DoNotOverwrite; + } + } + + + + + + The action to take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur within a call to ZipFile.Save, as the various files contained + in a ZipFile are being saved into the zip archive. During the + Save, DotNetZip will perform a File.Open on the file + associated to the ZipEntry, and then will read the entire contents of + the file as it is zipped. Either the open or the Read may fail, because + of lock conflicts or other reasons. Using this property, you can + specify the action to take when such errors occur. + + + + Typically you will NOT set this property on individual ZipEntry + instances. Instead, you will set the ZipFile.ZipErrorAction property on + the ZipFile instance, before adding any entries to the + ZipFile. If you do this, errors encountered on behalf of any of + the entries in the ZipFile will be handled the same way. + + + + But, if you use a handler, you will want + to set this property on the ZipEntry within the handler, to + communicate back to DotNetZip what you would like to do with the + particular error. + + + + + + + + + Indicates whether the entry was included in the most recent save. + + + An entry can be excluded or skipped from a save if there is an error + opening or reading the entry. + + + + + + A callback that allows the application to specify the compression to use + for a given entry that is about to be added to the zip archive. + + + + + See + + + + + + Set to indicate whether to use UTF-8 encoding for filenames and comments. + + + + + + If this flag is set, the comment and filename for the entry will be + encoded with UTF-8, as described in the Zip + specification, if necessary. "Necessary" means, the filename or + entry comment (if any) cannot be reflexively encoded and decoded using the + default code page, IBM437. + + + + Setting this flag to true is equivalent to setting to System.Text.Encoding.UTF8. + + + + This flag has no effect or relation to the text encoding used within the + file itself. + + + + + + + The text encoding to use for the FileName and Comment on this ZipEntry, + when the default encoding is insufficient. + + + + + + Don't use this property. See . + + + + + + + Specifies the alternate text encoding used by this ZipEntry + + + + The default text encoding used in Zip files for encoding filenames and + comments is IBM437, which is something like a superset of ASCII. In + cases where this is insufficient, applications can specify an + alternate encoding. + + + When creating a zip file, the usage of the alternate encoding is + governed by the property. + Typically you would set both properties to tell DotNetZip to employ an + encoding that is not IBM437 in the zipfile you are creating. + + + Keep in mind that because the ZIP specification states that the only + valid encodings to use are IBM437 and UTF-8, if you use something + other than that, then zip tools and libraries may not be able to + successfully read the zip archive you generate. + + + The zip specification states that applications should presume that + IBM437 is in use, except when a special bit is set, which indicates + UTF-8. There is no way to specify an arbitrary code page, within the + zip file itself. When you create a zip file encoded with gb2312 or + ibm861 or anything other than IBM437 or UTF-8, then the application + that reads the zip file needs to "know" which code page to use. In + some cases, the code page used when reading is chosen implicitly. For + example, WinRar uses the ambient code page for the host desktop + operating system. The pitfall here is that if you create a zip in + Copenhagen and send it to Tokyo, the reader of the zipfile may not be + able to decode successfully. + + + + This example shows how to create a zipfile encoded with a + language-specific encoding: + + using (var zip = new ZipFile()) + { + zip.AlternateEnoding = System.Text.Encoding.GetEncoding("ibm861"); + zip.AlternateEnodingUsage = ZipOption.Always; + zip.AddFileS(arrayOfFiles); + zip.Save("Myarchive-Encoded-in-IBM861.zip"); + } + + + + + + + Describes if and when this instance should apply + AlternateEncoding to encode the FileName and Comment, when + saving. + + + + + + Indicates whether an entry is marked as a text file. Be careful when + using on this property. Unless you have a good reason, you should + probably ignore this property. + + + + + The ZIP format includes a provision for specifying whether an entry in + the zip archive is a text or binary file. This property exposes that + metadata item. Be careful when using this property: It's not clear + that this property as a firm meaning, across tools and libraries. + + + + To be clear, when reading a zip file, the property value may or may + not be set, and its value may or may not be valid. Not all entries + that you may think of as "text" entries will be so marked, and entries + marked as "text" are not guaranteed in any way to be text entries. + Whether the value is set and set correctly depends entirely on the + application that produced the zip file. + + + + There are many zip tools available, and when creating zip files, some + of them "respect" the IsText metadata field, and some of them do not. + Unfortunately, even when an application tries to do "the right thing", + it's not always clear what "the right thing" is. + + + + There's no firm definition of just what it means to be "a text file", + and the zip specification does not help in this regard. Twenty years + ago, text was ASCII, each byte was less than 127. IsText meant, all + bytes in the file were less than 127. These days, it is not the case + that all text files have all bytes less than 127. Any unicode file + may have bytes that are above 0x7f. The zip specification has nothing + to say on this topic. Therefore, it's not clear what IsText really + means. + + + + This property merely tells a reading application what is stored in the + metadata for an entry, without guaranteeing its validity or its + meaning. + + + + When DotNetZip is used to create a zipfile, it attempts to set this + field "correctly." For example, if a file ends in ".txt", this field + will be set. Your application may override that default setting. When + writing a zip file, you must set the property before calling + Save() on the ZipFile. + + + + When reading a zip file, a more general way to decide just what kind + of file is contained in a particular entry is to use the file type + database stored in the operating system. The operating system stores + a table that says, a file with .jpg extension is a JPG image file, a + file with a .xml extension is an XML document, a file with a .txt is a + pure ASCII text document, and so on. To get this information on + Windows, you + need to read and parse the registry. + + + + + using (var zip = new ZipFile()) + { + var e = zip.UpdateFile("Descriptions.mme", ""); + e.IsText = true; + zip.Save(zipPath); + } + + + + Using zip As New ZipFile + Dim e2 as ZipEntry = zip.AddFile("Descriptions.mme", "") + e.IsText= True + zip.Save(zipPath) + End Using + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Extract the entry to the filesystem, starting at the current + working directory. + + + + This method has a bunch of overloads! One of them is sure to + be the right one for you... If you don't like these, check + out the ExtractWithPassword() methods. + + + + + + + + + This method extracts an entry from a zip file into the current + working directory. The path of the entry as extracted is the full + path as specified in the zip archive, relative to the current + working directory. After the file is extracted successfully, the + file attributes and timestamps are set. + + + + The action taken when extraction an entry would overwrite an + existing file is determined by the property. + + + + Within the call to Extract(), the content for the entry is + written into a filesystem file, and then the last modified time of the + file is set according to the property on + the entry. See the remarks the property for + some details about the last modified time. + + + + + + + Extract the entry to a file in the filesystem, using the specified + behavior when extraction would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the file is set after + extraction. + + + + + The action to take if extraction would overwrite an existing file. + + + + + Extracts the entry to the specified stream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + the stream to which the entry should be extracted. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory. + + + the pathname of the base directory + + + + + + This example extracts only the entries in a zip file that are .txt files, + into a directory called "textfiles". + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + { + zip[s1].Extract("textfiles"); + } + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + + Using this method, existing entries in the filesystem will not be + overwritten. If you would like to force the overwrite of existing + files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + + + String sZipPath = "Airborne.zip"; + String sFilePath = "Readme.txt"; + String sRootFolder = "Digado"; + using (ZipFile zip = ZipFile.Read(sZipPath)) + { + if (zip.EntryFileNames.Contains(sFilePath)) + { + // use the string indexer on the zip file + zip[sFileName].Extract(sRootFolder, + ExtractExistingFileAction.OverwriteSilently); + } + } + + + + Dim sZipPath as String = "Airborne.zip" + Dim sFilePath As String = "Readme.txt" + Dim sRootFolder As String = "Digado" + Using zip As ZipFile = ZipFile.Read(sZipPath) + If zip.EntryFileNames.Contains(sFilePath) + ' use the string indexer on the zip file + zip(sFilePath).Extract(sRootFolder, _ + ExtractExistingFileAction.OverwriteSilently) + End If + End Using + + + + the pathname of the base directory + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, using the current working directory + and the specified password. + + + + This method has a bunch of overloads! One of them is sure to be + the right one for you... + + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property for some + details about how the "last modified" time of the created file is + set. + + + + + In this example, entries that use encryption are extracted using a + particular password. + + using (var zip = ZipFile.Read(FilePath)) + { + foreach (ZipEntry e in zip) + { + if (e.UsesEncryption) + e.ExtractWithPassword("Secret!"); + else + e.Extract(); + } + } + + + Using zip As ZipFile = ZipFile.Read(FilePath) + Dim e As ZipEntry + For Each e In zip + If (e.UsesEncryption) + e.ExtractWithPassword("Secret!") + Else + e.Extract + End If + Next + End Using + + + The Password to use for decrypting the entry. + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified password. + + + + + + + + Existing entries in the filesystem will not be overwritten. If you + would like to force the overwrite of existing files, see the property, or call + . + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The pathname of the base directory. + The Password to use for decrypting the entry. + + + + Extract the entry to a file in the filesystem, relative to the + current directory, using the specified behavior when extraction + would overwrite an existing file. + + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + + The Password to use for decrypting the entry. + + + The action to take if extraction would overwrite an existing file. + + + + + Extract the entry to the filesystem, starting at the specified base + directory, and using the specified behavior when extraction would + overwrite an existing file. + + + + See the remarks on the property, for some + details about how the last modified time of the created file is set. + + + the pathname of the base directory + + The action to take if extraction would + overwrite an existing file. + + The Password to use for decrypting the entry. + + + + Extracts the entry to the specified stream, using the specified + Password. For example, the caller could extract to Console.Out, or + to a MemoryStream. + + + + + The caller can specify any write-able stream, for example a , a , or ASP.NET's + Response.OutputStream. The content will be decrypted and + decompressed as necessary. If the entry is encrypted and no password + is provided, this method will throw. + + + The position on the stream is not reset by this method before it extracts. + You may want to call stream.Seek() before calling ZipEntry.Extract(). + + + + + + the stream to which the entry should be extracted. + + + The password to use for decrypting the entry. + + + + + Opens a readable stream corresponding to the zip entry in the + archive. The stream decompresses and decrypts as necessary, as it + is read. + + + + + + DotNetZip offers a variety of ways to extract entries from a zip + file. This method allows an application to extract an entry by + reading a . + + + + The return value is of type . Use it as you would any + stream for reading. When an application calls on that stream, it will + receive data from the zip entry that is decrypted and decompressed + as necessary. + + + + CrcCalculatorStream adds one additional feature: it keeps a + CRC32 checksum on the bytes of the stream as it is read. The CRC + value is available in the property on the + CrcCalculatorStream. When the read is complete, your + application + should check this CRC against the + property on the ZipEntry to validate the content of the + ZipEntry. You don't have to validate the entry using the CRC, but + you should, to verify integrity. Check the example for how to do + this. + + + + If the entry is protected with a password, then you need to provide + a password prior to calling , either by + setting the property on the entry, or the + property on the ZipFile + itself. Or, you can use , the + overload of OpenReader that accepts a password parameter. + + + + If you want to extract entry data into a write-able stream that is + already opened, like a , do not + use this method. Instead, use . + + + + Your application may use only one stream created by OpenReader() at + a time, and you should not call other Extract methods before + completing your reads on a stream obtained from OpenReader(). This + is because there is really only one source stream for the compressed + content. A call to OpenReader() seeks in the source stream, to the + beginning of the compressed content. A subsequent call to + OpenReader() on a different entry will seek to a different position + in the source stream, as will a call to Extract() or one of its + overloads. This will corrupt the state for the decompressing stream + from the original call to OpenReader(). + + + + The OpenReader() method works only when the ZipEntry is + obtained from an instance of ZipFile. This method will throw + an exception if the ZipEntry is obtained from a . + + + + + This example shows how to open a zip archive, then read in a named + entry via a stream. After the read loop is complete, the code + compares the calculated during the read loop with the expected CRC + on the ZipEntry, to verify the extraction. + + using (ZipFile zip = new ZipFile(ZipFileToRead)) + { + ZipEntry e1= zip["Elevation.mp3"]; + using (Ionic.Zlib.CrcCalculatorStream s = e1.OpenReader()) + { + byte[] buffer = new byte[4096]; + int n, totalBytesRead= 0; + do { + n = s.Read(buffer,0, buffer.Length); + totalBytesRead+=n; + } while (n>0); + if (s.Crc32 != e1.Crc32) + throw new Exception(string.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)); + if (totalBytesRead != e1.UncompressedSize) + throw new Exception(string.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)); + } + } + + + Using zip As New ZipFile(ZipFileToRead) + Dim e1 As ZipEntry = zip.Item("Elevation.mp3") + Using s As Ionic.Zlib.CrcCalculatorStream = e1.OpenReader + Dim n As Integer + Dim buffer As Byte() = New Byte(4096) {} + Dim totalBytesRead As Integer = 0 + Do + n = s.Read(buffer, 0, buffer.Length) + totalBytesRead = (totalBytesRead + n) + Loop While (n > 0) + If (s.Crc32 <> e1.Crc32) Then + Throw New Exception(String.Format("The Zip Entry failed the CRC Check. (0x{0:X8}!=0x{1:X8})", s.Crc32, e1.Crc32)) + End If + If (totalBytesRead <> e1.UncompressedSize) Then + Throw New Exception(String.Format("We read an unexpected number of bytes. ({0}!={1})", totalBytesRead, e1.UncompressedSize)) + End If + End Using + End Using + + + + The Stream for reading. + + + + Opens a readable stream for an encrypted zip entry in the archive. + The stream decompresses and decrypts as necessary, as it is read. + + + + + See the documentation on the method for + full details. This overload allows the application to specify a + password for the ZipEntry to be read. + + + + The password to use for decrypting the entry. + The Stream for reading. + + + + Pass in either basedir or s, but not both. + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Extract to a stream + In other words, you can extract to a stream or to a directory (filesystem), but not both! + The Password param is required for encrypted entries. + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Validates that the args are consistent; returning whether the caller can return + because it's done, or not (caller should continue) + + + + + Reads one ZipEntry from the given stream. The content for + the entry does not get decompressed or decrypted. This method + basically reads metadata, and seeks. + + the ZipContainer this entry belongs to. + + true of this is the first entry being read from the stream. + + the ZipEntry read from the stream. + + + + Finds a particular segment in the given extra field. + This is used when modifying a previously-generated + extra field, in particular when removing the AES crypto + segment in the extra field. + + + + + At current cursor position in the stream, read the extra + field, and set the properties on the ZipEntry instance + appropriately. This can be called when processing the + Extra field in the Central Directory, or in the local + header. + + + + + generate and return a byte array that encodes the filename + for the entry. + + + + side effects: generate and store into _CommentBytes the + byte array for any comment attached to the entry. Also + sets _actualEncoding to indicate the actual encoding + used. The same encoding is used for both filename and + comment. + + + + + + Stores the position of the entry source stream, or, if the position is + already stored, seeks to that position. + + + + + This method is called in prep for reading the source stream. If PKZIP + encryption is used, then we need to calc the CRC32 before doing the + encryption, because the CRC is used in the 12th byte of the PKZIP + encryption header. So, we need to be able to seek backward in the source + when saving the ZipEntry. This method is called from the place that + calculates the CRC, and also from the method that does the encryption of + the file data. + + + + The first time through, this method sets the _sourceStreamOriginalPosition + field. Subsequent calls to this method seek to that position. + + + + + + Copy metadata that may have been changed by the app. We do this when + resetting the zipFile instance. If the app calls Save() on a ZipFile, then + tries to party on that file some more, we may need to Reset() it , which + means re-reading the entries and then copying the metadata. I think. + + + + + Set the input stream and get its length, if possible. The length is + used for progress updates, AND, to allow an optimization in case of + a stream/file of zero length. In that case we skip the Encrypt and + compression Stream. (like DeflateStream or BZip2OutputStream) + + + + + Prepare the given stream for output - wrap it in a CountingStream, and + then in a CRC stream, and an encryptor and deflator as appropriate. + + + + Previously this was used in ZipEntry.Write(), but in an effort to + introduce some efficiencies in that method I've refactored to put the + code inline. This method still gets called by ZipOutputStream. + + + + + + An enum that specifies the type of timestamp available on the ZipEntry. + + + + + + The last modified time of a file can be stored in multiple ways in + a zip file, and they are not mutually exclusive: + + + + + In the so-called "DOS" format, which has a 2-second precision. Values + are rounded to the nearest even second. For example, if the time on the + file is 12:34:43, then it will be stored as 12:34:44. This first value + is accessible via the LastModified property. This value is always + present in the metadata for each zip entry. In some cases the value is + invalid, or zero. + + + + In the so-called "Windows" or "NTFS" format, as an 8-byte integer + quantity expressed as the number of 1/10 milliseconds (in other words + the number of 100 nanosecond units) since January 1, 1601 (UTC). This + format is how Windows represents file times. This time is accessible + via the ModifiedTime property. + + + + In the "Unix" format, a 4-byte quantity specifying the number of seconds since + January 1, 1970 UTC. + + + + In an older format, now deprecated but still used by some current + tools. This format is also a 4-byte quantity specifying the number of + seconds since January 1, 1970 UTC. + + + + + + This bit field describes which of the formats were found in a ZipEntry that was read. + + + + + + + Default value. + + + + + A DOS timestamp with 2-second precision. + + + + + A Windows timestamp with 100-ns precision. + + + + + A Unix timestamp with 1-second precision. + + + + + A Unix timestamp with 1-second precision, stored in InfoZip v1 format. This + format is outdated and is supported for reading archives only. + + + + + The method of compression to use for a particular ZipEntry. + + + + PKWare's + ZIP Specification describes a number of distinct + cmopression methods that can be used within a zip + file. DotNetZip supports a subset of them. + + + + + No compression at all. For COM environments, the value is 0 (zero). + + + + + DEFLATE compression, as described in IETF RFC + 1951. This is the "normal" compression used in zip + files. For COM environments, the value is 8. + + + + + BZip2 compression, a compression algorithm developed by Julian Seward. + For COM environments, the value is 12. + + + + + An enum that specifies the source of the ZipEntry. + + + + + Default value. Invalid on a bonafide ZipEntry. + + + + + The entry was instantiated by calling AddFile() or another method that + added an entry from the filesystem. + + + + + The entry was instantiated via or + . + + + + + The ZipEntry was instantiated by reading a zipfile. + + + + + The content for the ZipEntry will be or was provided by the WriteDelegate. + + + + + The content for the ZipEntry will be obtained from the stream dispensed by the OpenDelegate. + The entry was instantiated via . + + + + + The content for the ZipEntry will be or was obtained from a ZipOutputStream. + + + + + An enum providing the options when an error occurs during opening or reading + of a file or directory that is being saved to a zip file. + + + + + This enum describes the actions that the library can take when an error occurs + opening or reading a file, as it is being saved into a Zip archive. + + + + In some cases an error will occur when DotNetZip tries to open a file to be + added to the zip archive. In other cases, an error might occur after the + file has been successfully opened, while DotNetZip is reading the file. + + + + The first problem might occur when calling AddDirectory() on a directory + that contains a Clipper .dbf file; the file is locked by Clipper and + cannot be opened by another process. An example of the second problem is + the ERROR_LOCK_VIOLATION that results when a file is opened by another + process, but not locked, and a range lock has been taken on the file. + Microsoft Outlook takes range locks on .PST files. + + + + + + Throw an exception when an error occurs while zipping. This is the default + behavior. (For COM clients, this is a 0 (zero).) + + + + + When an error occurs during zipping, for example a file cannot be opened, + skip the file causing the error, and continue zipping. (For COM clients, + this is a 1.) + + + + + When an error occurs during zipping, for example a file cannot be opened, + retry the operation that caused the error. Be careful with this option. If + the error is not temporary, the library will retry forever. (For COM + clients, this is a 2.) + + + + + When an error occurs, invoke the zipError event. The event type used is + . A typical use of this option: + a GUI application may wish to pop up a dialog to allow the user to view the + error that occurred, and choose an appropriate action. After your + processing in the error event, if you want to skip the file, set on the + ZipProgressEventArgs.CurrentEntry to Skip. If you want the + exception to be thrown, set ZipErrorAction on the CurrentEntry + to Throw. If you want to cancel the zip, set + ZipProgressEventArgs.Cancel to true. Cancelling differs from using + Skip in that a cancel will not save any further entries, if there are any. + (For COM clients, the value of this enum is a 3.) + + + + + The ZipFile type represents a zip archive file. + + + + + This is the main type in the DotNetZip class library. This class reads and + writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides a general purpose zip file capability. Use it to read, + create, or update zip files. When you want to create zip files using a + Stream type to write the zip file, you may want to consider the class. + + + + Both the ZipOutputStream class and the ZipFile class can + be used to create zip files. Both of them support many of the common zip + features, including Unicode, different compression methods and levels, + and ZIP64. They provide very similar performance when creating zip + files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipFile class implements the interface. In order for ZipFile to + produce a valid zip file, you use use it within a using clause (Using + in VB), or call the Dispose() method explicitly. See the examples + for how to employ a using clause. + + + + + + + Adds an item, either a file or a directory, to a zip file archive. + + + + + This method is handy if you are adding things to zip archive and don't + want to bother distinguishing between directories or files. Any files are + added as single entries. A directory added through this method is added + recursively: all files and subdirectories contained within the directory + are added to the ZipFile. + + + + The name of the item may be a relative path or a fully-qualified + path. Remember, the items contained in ZipFile instance get written + to the disk only when you call or a similar + save method. + + + + The directory name used for the file within the archive is the same + as the directory name (potentially a relative path) specified in the + . + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + This method has two overloads. + + the name of the file or directory to add. + + The ZipEntry added. + + + + Adds an item, either a file or a directory, to a zip file archive, + explicitly specifying the directory path to be used in the archive. + + + + + If adding a directory, the add is recursive on all files and + subdirectories contained within it. + + + The name of the item may be a relative path or a fully-qualified path. + The item added by this call to the ZipFile is not read from the + disk nor written to the zip file archive until the application calls + Save() on the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive, which would override the + "natural" path of the filesystem file. + + + + Encryption will be used on the file data if the Password has + been set on the ZipFile object, prior to calling this method. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + Thrown if the file or directory passed in does not exist. + + + the name of the file or directory to add. + + + + The name of the directory path to use within the zip archive. This path + need not refer to an extant directory in the current filesystem. If the + files within the zip are later extracted, this is the path used for the + extracted file. Passing null (Nothing in VB) will use the + path on the fileOrDirectoryName. Passing the empty string ("") will + insert the item at the root path within the archive. + + + + + + + + This example shows how to zip up a set of files into a flat hierarchy, + regardless of where in the filesystem the files originated. The resulting + zip archive will contain a toplevel directory named "flat", which itself + will contain files Readme.txt, MyProposal.docx, and Image1.jpg. A + subdirectory under "flat" called SupportFiles will contain all the files + in the "c:\SupportFiles" directory on disk. + + + String[] itemnames= { + "c:\\fixedContent\\Readme.txt", + "MyProposal.docx", + "c:\\SupportFiles", // a directory + "images\\Image1.jpg" + }; + + try + { + using (ZipFile zip = new ZipFile()) + { + for (int i = 1; i < itemnames.Length; i++) + { + // will add Files or Dirs, recurses and flattens subdirectories + zip.AddItem(itemnames[i],"flat"); + } + zip.Save(ZipToCreate); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Dim itemnames As String() = _ + New String() { "c:\fixedContent\Readme.txt", _ + "MyProposal.docx", _ + "SupportFiles", _ + "images\Image1.jpg" } + Try + Using zip As New ZipFile + Dim i As Integer + For i = 1 To itemnames.Length - 1 + ' will add Files or Dirs, recursing and flattening subdirectories. + zip.AddItem(itemnames(i), "flat") + Next i + zip.Save(ZipToCreate) + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString()) + End Try + + + The ZipEntry added. + + + + Adds a File to a Zip file archive. + + + + + This call collects metadata for the named file in the filesystem, + including the file attributes and the timestamp, and inserts that metadata + into the resulting ZipEntry. Only when the application calls Save() on + the ZipFile, does DotNetZip read the file from the filesystem and + then write the content to the zip file archive. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called photos\personal. The pdf file + will be included into a folder within the zip called Desktop. + + + try + { + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("c:\\photos\\personal\\7440-N49th.png"); + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf"); + zip.AddFile("ReadMe.txt"); + + zip.Save("Package.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: " + ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + zip.AddFile("c:\photos\personal\7440-N49th.png") + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf") + zip.AddFile("ReadMe.txt") + zip.Save("Package.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1.ToString) + End Try + + + + This method has two overloads. + + + + + + + The name of the file to add. It should refer to a file in the filesystem. + The name of the file may be a relative path or a fully-qualified path. + + The ZipEntry corresponding to the File added. + + + + Adds a File to a Zip file archive, potentially overriding the path to be + used within the zip archive. + + + + + The file added by this call to the ZipFile is not written to the + zip file archive until the application calls Save() on the ZipFile. + + + + This method will throw an exception if an entry with the same name already + exists in the ZipFile. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + In this example, three files are added to a Zip archive. The ReadMe.txt + file will be placed in the root of the archive. The .png file will be + placed in a folder within the zip called images. The pdf file will be + included into a folder within the zip called files\docs, and will be + encrypted with the given password. + + + try + { + using (ZipFile zip = new ZipFile()) + { + // the following entry will be inserted at the root in the archive. + zip.AddFile("c:\\datafiles\\ReadMe.txt", ""); + // this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\\photos\\personal\\7440-N49th.png", "images"); + // the following will result in a password-protected file called + // files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!"; + zip.AddFile("c:\\Desktop\\2008-Regional-Sales-Report.pdf", "files\\docs"); + zip.Save("Archive.zip"); + } + } + catch (System.Exception ex1) + { + System.Console.Error.WriteLine("exception: {0}", ex1); + } + + + + Try + Using zip As ZipFile = New ZipFile + ' the following entry will be inserted at the root in the archive. + zip.AddFile("c:\datafiles\ReadMe.txt", "") + ' this image file will be inserted into the "images" directory in the archive. + zip.AddFile("c:\photos\personal\7440-N49th.png", "images") + ' the following will result in a password-protected file called + ' files\\docs\\2008-Regional-Sales-Report.pdf in the archive. + zip.Password = "EncryptMe!" + zip.AddFile("c:\Desktop\2008-Regional-Sales-Report.pdf", "files\documents") + zip.Save("Archive.zip") + End Using + Catch ex1 As Exception + Console.Error.WriteLine("exception: {0}", ex1) + End Try + + + + + + + + + The name of the file to add. The name of the file may be a relative path + or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the fileName. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on the fileName, if any. Passing the empty string + ("") will insert the item at the root path within the archive. + + + The ZipEntry corresponding to the file added. + + + + This method removes a collection of entries from the ZipFile. + + + + A collection of ZipEntry instances from this zip file to be removed. For + example, you can pass in an array of ZipEntry instances; or you can call + SelectEntries(), and then add or remove entries from that + ICollection<ZipEntry> (ICollection(Of ZipEntry) in VB), and pass + that ICollection to this method. + + + + + + + + This method removes a collection of entries from the ZipFile, by name. + + + + A collection of strings that refer to names of entries to be removed + from the ZipFile. For example, you can pass in an array or a + List of Strings that provide the names of entries to be removed. + + + + + + + + This method adds a set of files to the ZipFile. + + + + + Use this method to add a set of files to the zip archive, in one call. + For example, a list of files received from + System.IO.Directory.GetFiles() can be added to a zip archive in one + call. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to add. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + This example shows how to create a zip file, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile + ' Store all files found in the top level directory, into the zip archive. + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save(ZipFileToCreate) + End Using + + + + + + + + Adds or updates a set of files in the ZipFile. + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The collection of names of the files to update. Each string should refer to a file in + the filesystem. The name of the file may be a relative path or a fully-qualified path. + + + + + + Adds a set of files to the ZipFile, using the + specified directory path in the archive. + + + + + Any directory structure that may be present in the + filenames contained in the list is "flattened" in the + archive. Each file in the list is added to the archive in + the specified top-level directory. + + + + For ZipFile properties including , , , , , , and , their respective values at the + time of this call will be applied to each ZipEntry added. + + + + + The names of the files to add. Each string should refer to + a file in the filesystem. The name of the file may be a + relative path or a fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + Th is path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds a set of files to the ZipFile, using the specified directory + path in the archive, and preserving the full directory structure in the + filenames. + + + + + + Think of the as a "root" or + base directory used in the archive for the files that get added. when + is true, the hierarchy of files + found in the filesystem will be placed, with the hierarchy intact, + starting at that root in the archive. When preserveDirHierarchy + is false, the path hierarchy of files is flattned, and the flattened + set of files gets placed in the root within the archive as specified in + directoryPathInArchive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + The names of the files to add. Each string should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use as a prefix for each entry name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + whether the entries in the zip archive will reflect the directory + hierarchy that is present in the various filenames. For example, if + includes two paths, + \Animalia\Chordata\Mammalia\Info.txt and + \Plantae\Magnoliophyta\Dicotyledon\Info.txt, then calling this method + with = false will + result in an exception because of a duplicate entry name, while + calling this method with = + true will result in the full direcory paths being included in + the entries added to the ZipFile. + + + + + + Adds or updates a set of files to the ZipFile, using the specified + directory path in the archive. + + + + + + Any files that already exist in the archive are updated. Any files that + don't yet exist in the archive are added. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + The names of the files to add or update. Each string should refer to a + file in the filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the file name. + This path may, or may not, correspond to a real directory in the current + filesystem. If the files within the zip are later extracted, this is the + path used for the extracted file. Passing null (Nothing in + VB) will use the path on each of the fileNames, if any. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. The UpdateFile method might more accurately be + called "AddOrUpdateFile". + + + + Upon success, there is no way for the application to learn whether the file + was added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + This example shows how to Update an existing entry in a zipfile. The first + call to UpdateFile adds the file to the newly-created zip archive. The + second call to UpdateFile updates the content for that file in the zip + archive. + + + using (ZipFile zip1 = new ZipFile()) + { + // UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\\Readme.txt"); + zip1.UpdateFile("CustomerList.csv"); + zip1.Comment = "This zip archive has been created."; + zip1.Save("Content.zip"); + } + + using (ZipFile zip2 = ZipFile.Read("Content.zip")) + { + zip2.UpdateFile("Updates\\Readme.txt"); + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed."; + zip2.Save(); + } + + + + Using zip1 As New ZipFile + ' UpdateFile might more accurately be called "AddOrUpdateFile" + zip1.UpdateFile("MyDocuments\Readme.txt") + zip1.UpdateFile("CustomerList.csv") + zip1.Comment = "This zip archive has been created." + zip1.Save("Content.zip") + End Using + + Using zip2 As ZipFile = ZipFile.Read("Content.zip") + zip2.UpdateFile("Updates\Readme.txt") + zip2.Comment = "This zip archive has been updated: The Readme.txt file has been changed." + zip2.Save + End Using + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Adds or Updates a File in a Zip file archive. + + + + + This method adds a file to a zip archive, or, if the file already exists + in the zip archive, this method Updates the content of that given filename + in the zip archive. + + + + This version of the method allows the caller to explicitly specify the + directory path to be used in the archive. The entry to be added or + updated is found by using the specified directory path, combined with the + basename of the specified filename. + + + + Upon success, there is no way for the application to learn if the file was + added versus updated. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name of the file to add or update. It should refer to a file in the + filesystem. The name of the file may be a relative path or a + fully-qualified path. + + + + Specifies a directory path to use to override any path in the + fileName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + fileName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + The ZipEntry corresponding to the File that was added or updated. + + + + + Add or update a directory in a zip archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated in + the zip archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a directory in the zip archive at the specified root + directory in the archive. + + + + If the specified directory does not exist in the archive, then this method + is equivalent to calling AddDirectory(). If the specified + directory already exists in the archive, then this method updates any + existing entries, and adds any new entries. Any entries that are in the + zip archive but not in the specified directory, are left alone. In other + words, the contents of the zip file will be a union of the previous + contents and the new files. + + + + + + + + The path to the directory to be added to the zip archive, or updated + in the zip archive. + + + + Specifies a directory path to use to override any path in the + directoryName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + directoryName, if any. Passing the empty string ("") will insert + the item at the root path within the archive. + + + + The ZipEntry corresponding to the Directory that was added or updated. + + + + + Add or update a file or directory in the zip archive. + + + + + This is useful when the application is not sure or does not care if the + item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry() if an entry by the same name + already exists, followed calling by AddItem(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + the path to the file or directory to be added or updated. + + + + + Add or update a file or directory. + + + + + This method is useful when the application is not sure or does not care if + the item to be added is a file or directory, and does not know or does not + care if the item already exists in the ZipFile. Calling this method + is equivalent to calling RemoveEntry(), if an entry by that name + exists, and then calling AddItem(). + + + + This version of the method allows the caller to explicitly specify the + directory path to be used for the item being added to the archive. The + entry or entries that are added or updated will use the specified + DirectoryPathInArchive. Extracting the entry from the archive will + result in a file stored in that directory path. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The path for the File or Directory to be added or updated. + + + Specifies a directory path to use to override any path in the + itemName. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (Nothing in VB) will use the path on the + itemName, if any. Passing the empty string ("") will insert the + item at the root path within the archive. + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string. + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. The content for the entry is encoded using the default text + encoding for the machine. + + + + The content of the file, should it be extracted from the zip. + + + + The name, including any path, to use for the entry within the archive. + + + The ZipEntry added. + + + + This example shows how to add an entry to the zipfile, using a string as + content for that entry. + + + string Content = "This string will be the content of the Readme.txt file in the zip archive."; + using (ZipFile zip1 = new ZipFile()) + { + zip1.AddFile("MyDocuments\\Resume.doc", "files"); + zip1.AddEntry("Readme.txt", Content); + zip1.Comment = "This zip file was created at " + System.DateTime.Now.ToString("G"); + zip1.Save("Content.zip"); + } + + + + Public Sub Run() + Dim Content As String = "This string will be the content of the Readme.txt file in the zip archive." + Using zip1 As ZipFile = New ZipFile + zip1.AddEntry("Readme.txt", Content) + zip1.AddFile("MyDocuments\Resume.doc", "files") + zip1.Comment = ("This zip file was created at " & DateTime.Now.ToString("G")) + zip1.Save("Content.zip") + End Using + End Sub + + + + + + Adds a named entry into the zip archive, taking content for the entry + from a string, and using the specified text encoding. + + + + + + Calling this method creates an entry using the given fileName and + directory path within the archive. There is no need for a file by the + given name to exist in the filesystem; the name is used within the zip + archive only. + + + + The content for the entry, a string value, is encoded using the given + text encoding. A BOM (byte-order-mark) is emitted into the file, if the + Encoding parameter is set for that. + + + + Most Encoding classes support a constructor that accepts a boolean, + indicating whether to emit a BOM or not. For example see . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the fileName, as specified + in . + + + The ZipEntry added. + + + + + Create an entry in the ZipFile using the given Stream + as input. The entry will have the given filename. + + + + + + The application should provide an open, readable stream; in this case it + will be read during the call to or one of + its overloads. + + + + The passed stream will be read from its current position. If + necessary, callers should set the position in the stream before + calling AddEntry(). This might be appropriate when using this method + with a MemoryStream, for example. + + + + In cases where a large number of streams will be added to the + ZipFile, the application may wish to avoid maintaining all of the + streams open simultaneously. To handle this situation, the application + should use the + overload. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example adds a single entry to a ZipFile via a Stream. + + + + String zipToCreate = "Content.zip"; + String fileNameInArchive = "Content-From-Stream.bin"; + using (System.IO.Stream streamToRead = MyStreamOpener()) + { + using (ZipFile zip = new ZipFile()) + { + ZipEntry entry= zip.AddEntry(fileNameInArchive, streamToRead); + zip.AddFile("Readme.txt"); + zip.Save(zipToCreate); // the stream is read implicitly here + } + } + + + + Dim zipToCreate As String = "Content.zip" + Dim fileNameInArchive As String = "Content-From-Stream.bin" + Using streamToRead as System.IO.Stream = MyStreamOpener() + Using zip As ZipFile = New ZipFile() + Dim entry as ZipEntry = zip.AddEntry(fileNameInArchive, streamToRead) + zip.AddFile("Readme.txt") + zip.Save(zipToCreate) '' the stream is read implicitly, here + End Using + End Using + + + + + + + The name, including any path, which is shown in the zip file for the added + entry. + + + The input stream from which to grab content for the file + + The ZipEntry added. + + + + Add a ZipEntry for which content is written directly by the application. + + + + + When the application needs to write the zip entry data, use this + method to add the ZipEntry. For example, in the case that the + application wishes to write the XML representation of a DataSet into + a ZipEntry, the application can use this method to do so. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + About progress events: When using the WriteDelegate, DotNetZip does + not issue any SaveProgress events with EventType = + Saving_EntryBytesRead. (This is because it is the + application's code that runs in WriteDelegate - there's no way for + DotNetZip to know when to issue a EntryBytesRead event.) + Applications that want to update a progress bar or similar status + indicator should do so from within the WriteDelegate + itself. DotNetZip will issue the other SaveProgress events, + including + Saving_Started, + + Saving_BeforeWriteEntry, and + Saving_AfterWriteEntry. + + + + Note: When you use PKZip encryption, it's normally necessary to + compute the CRC of the content to be encrypted, before compressing or + encrypting it. Therefore, when using PKZip encryption with a + WriteDelegate, the WriteDelegate CAN BE called twice: once to compute + the CRC, and the second time to potentially compress and + encrypt. Surprising, but true. This is because PKWARE specified that + the encryption initialization data depends on the CRC. + If this happens, for each call of the delegate, your + application must stream the same entry data in its entirety. If your + application writes different data during the second call, it will + result in a corrupt zip file. + + + + The double-read behavior happens with all types of entries, not only + those that use WriteDelegate. It happens if you add an entry from a + filesystem file, or using a string, or a stream, or an opener/closer + pair. But in those cases, DotNetZip takes care of reading twice; in + the case of the WriteDelegate, the application code gets invoked + twice. Be aware. + + + + As you can imagine, this can cause performance problems for large + streams, and it can lead to correctness problems when you use a + WriteDelegate. This is a pretty big pitfall. There are two + ways to avoid it. First, and most preferred: don't use PKZIP + encryption. If you use the WinZip AES encryption, this problem + doesn't occur, because the encryption protocol doesn't require the CRC + up front. Second: if you do choose to use PKZIP encryption, write out + to a non-seekable stream (like standard output, or the + Response.OutputStream in an ASP.NET application). In this case, + DotNetZip will use an alternative encryption protocol that does not + rely on the CRC of the content. This also implies setting bit 3 in + the zip entry, which still presents problems for some zip tools. + + + + In the future I may modify DotNetZip to *always* use bit 3 when PKZIP + encryption is in use. This seems like a win overall, but there will + be some work involved. If you feel strongly about it, visit the + DotNetZip forums and vote up the Workitem + tracking this issue. + + + + + the name of the entry to add + the delegate which will write the entry content + the ZipEntry added + + + + This example shows an application filling a DataSet, then saving the + contents of that DataSet as XML, into a ZipEntry in a ZipFile, using an + anonymous delegate in C#. The DataSet XML is never saved to a disk file. + + + var c1= new System.Data.SqlClient.SqlConnection(connstring1); + var da = new System.Data.SqlClient.SqlDataAdapter() + { + SelectCommand= new System.Data.SqlClient.SqlCommand(strSelect, c1) + }; + + DataSet ds1 = new DataSet(); + da.Fill(ds1, "Invoices"); + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,stream) => ds1.WriteXml(stream) ); + zip.Save(zipFileName); + } + + + + + + This example uses an anonymous method in C# as the WriteDelegate to provide + the data for the ZipEntry. The example is a bit contrived - the + AddFile() method is a simpler way to insert the contents of a file + into an entry in a zip file. On the other hand, if there is some sort of + processing or transformation of the file contents required before writing, + the application could use the WriteDelegate to do it, in this way. + + + using (var input = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite )) + { + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, (name,output) => + { + byte[] buffer = new byte[BufferSize]; + int n; + while ((n = input.Read(buffer, 0, buffer.Length)) != 0) + { + // could transform the data here... + output.Write(buffer, 0, n); + // could update a progress bar here + } + }); + + zip.Save(zipFileName); + } + } + + + + + + This example uses a named delegate in VB to write data for the given + ZipEntry (VB9 does not have anonymous delegates). The example here is a bit + contrived - a simpler way to add the contents of a file to a ZipEntry is to + simply use the appropriate AddFile() method. The key scenario for + which the WriteDelegate makes sense is saving a DataSet, in XML + format, to the zip file. The DataSet can write XML to a stream, and the + WriteDelegate is the perfect place to write into the zip file. There may be + other data structures that can write to a stream, but cannot be read as a + stream. The WriteDelegate would be appropriate for those cases as + well. + + + Private Sub WriteEntry (ByVal name As String, ByVal output As Stream) + Using input As FileStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer = -1 + Dim buffer As Byte() = New Byte(BufferSize){} + Do While n <> 0 + n = input.Read(buffer, 0, buffer.Length) + output.Write(buffer, 0, n) + Loop + End Using + End Sub + + Public Sub Run() + Using zip = New ZipFile + zip.AddEntry(zipEntryName, New WriteDelegate(AddressOf WriteEntry)) + zip.Save(zipFileName) + End Using + End Sub + + + + + + Add an entry, for which the application will provide a stream + containing the entry data, on a just-in-time basis. + + + + + In cases where the application wishes to open the stream that + holds the content for the ZipEntry, on a just-in-time basis, the + application can use this method. The application provides an + opener delegate that will be called by the DotNetZip library to + obtain a readable stream that can be read to get the bytes for + the given entry. Typically, this delegate opens a stream. + Optionally, the application can provide a closer delegate as + well, which will be called by DotNetZip when all bytes have been + read from the entry. + + + + These delegates are called from within the scope of the call to + ZipFile.Save(). + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + This example uses anonymous methods in C# to open and close the + source stream for the content for a zip entry. + + + using(Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) + { + zip.AddEntry(zipEntryName, + (name) => File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ), + (name, stream) => stream.Close() + ); + + zip.Save(zipFileName); + } + + + + + + + This example uses delegates in VB.NET to open and close the + the source stream for the content for a zip entry. VB 9.0 lacks + support for "Sub" lambda expressions, and so the CloseDelegate must + be an actual, named Sub. + + + + Function MyStreamOpener(ByVal entryName As String) As Stream + '' This simply opens a file. You probably want to do somethinig + '' more involved here: open a stream to read from a database, + '' open a stream on an HTTP connection, and so on. + Return File.OpenRead(entryName) + End Function + + Sub MyStreamCloser(entryName As String, stream As Stream) + stream.Close() + End Sub + + Public Sub Run() + Dim dirToZip As String = "fodder" + Dim zipFileToCreate As String = "Archive.zip" + Dim opener As OpenDelegate = AddressOf MyStreamOpener + Dim closer As CloseDelegate = AddressOf MyStreamCloser + Dim numFilestoAdd As Int32 = 4 + Using zip As ZipFile = New ZipFile + Dim i As Integer + For i = 0 To numFilesToAdd - 1 + zip.AddEntry(String.Format("content-{0:000}.txt"), opener, closer) + Next i + zip.Save(zipFileToCreate) + End Using + End Sub + + + + + the name of the entry to add + + the delegate that will be invoked by ZipFile.Save() to get the + readable stream for the given entry. ZipFile.Save() will call + read on this stream to obtain the data for the entry. This data + will then be compressed and written to the newly created zip + file. + + + the delegate that will be invoked to close the stream. This may + be null (Nothing in VB), in which case no call is makde to close + the stream. + + the ZipEntry added + + + + + Updates the given entry in the ZipFile, using the given + string as content for the ZipEntry. + + + + + + Calling this method is equivalent to removing the ZipEntry for + the given file name and directory path, if it exists, and then calling + . See the documentation for + that method for further explanation. The string content is encoded + using the default encoding for the machine. This encoding is distinct + from the encoding used for the filename itself. See + . + + + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given string as + content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + The content of the file, should it be extracted from the zip. + + + + The text encoding to use when encoding the string. Be aware: This is + distinct from the text encoding used to encode the filename. See . + + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegate + as the source for content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + the delegate which will write the entry content. + + The ZipEntry added. + + + + + Updates the given entry in the ZipFile, using the given delegates + to open and close the stream that provides the content for the ZipEntry. + + + + Calling this method is equivalent to removing the ZipEntry for the + given file name and directory path, if it exists, and then calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + + the delegate that will be invoked to open the stream + + + the delegate that will be invoked to close the stream + + + The ZipEntry added or updated. + + + + + Updates the given entry in the ZipFile, using the given stream as + input, and the given filename and given directory Path. + + + + + Calling the method is equivalent to calling RemoveEntry() if an + entry by the same name already exists, and then calling AddEntry() + with the given fileName and stream. + + + + The stream must be open and readable during the call to + ZipFile.Save. You can dispense the stream on a just-in-time basis + using the property. Check the + documentation of that property for more information. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to the + ZipEntry added. + + + + + + + + + The name, including any path, to use within the archive for the entry. + + + The input stream from which to read file data. + The ZipEntry added. + + + + Add an entry into the zip archive using the given filename and + directory path within the archive, and the given content for the + file. No file is created in the filesystem. + + + The data to use for the entry. + + + The name, including any path, to use within the archive for the entry. + + + The ZipEntry added. + + + + Updates the given entry in the ZipFile, using the given byte + array as content for the entry. + + + + Calling this method is equivalent to removing the ZipEntry + for the given filename and directory path, if it exists, and then + calling . See the + documentation for that method for further explanation. + + + + The name, including any path, to use within the archive for the entry. + + + The content to use for the ZipEntry. + + The ZipEntry added. + + + + + Adds the contents of a filesystem directory to a Zip file archive. + + + + + + The name of the directory may be a relative path or a fully-qualified + path. Any files within the named directory are added to the archive. Any + subdirectories within the named directory are also added to the archive, + recursively. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + If you want the entries to appear in a containing directory in the zip + archive itself, then you should call the AddDirectory() overload that + allows you to explicitly specify a directory path for use in the archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + + + + This method has 2 overloads. + + The name of the directory to add. + The ZipEntry added. + + + + Adds the contents of a filesystem directory to a Zip file archive, + overriding the path to be used for entries in the archive. + + + + + The name of the directory may be a relative path or a fully-qualified + path. The add operation is recursive, so that any files or subdirectories + within the name directory are also added to the archive. + + + + Top-level entries in the named directory will appear as top-level entries + in the zip archive. Entries in subdirectories in the named directory will + result in entries in subdirectories in the zip archive. + + + + For ZipFile properties including , , , , , + , and , their + respective values at the time of this call will be applied to each + ZipEntry added. + + + + + + + In this code, calling the ZipUp() method with a value of "c:\reports" for + the directory parameter will result in a zip file structure in which all + entries are contained in a toplevel "reports" directory. + + + + public void ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) + { + zip.AddDirectory(directory, System.IO.Path.GetFileName(directory)); + zip.Save(targetZip); + } + } + + + + + + + + The name of the directory to add. + + + Specifies a directory path to use to override any path in the + DirectoryName. This path may, or may not, correspond to a real directory + in the current filesystem. If the zip is later extracted, this is the + path used for the extracted file or directory. Passing null + (Nothing in VB) or the empty string ("") will insert the items at + the root path within the archive. + + + The ZipEntry added. + + + + Creates a directory in the zip archive. + + + + + + Use this when you want to create a directory in the archive but there is + no corresponding filesystem representation for that directory. + + + + You will probably not need to do this in your code. One of the only times + you will want to do this is if you want an empty directory in the zip + archive. The reason: if you add a file to a zip archive that is stored + within a multi-level directory, all of the directory tree is implicitly + created in the zip archive. + + + + + + The name of the directory to create in the archive. + + The ZipEntry added. + + + + Checks a zip file to see if its directory is consistent. + + + + + + In cases of data error, the directory within a zip file can get out + of synch with the entries in the zip file. This method checks the + given zip file and returns true if this has occurred. + + + This method may take a long time to run for large zip files. + + + This method is not supported in the Reduced version of DotNetZip. + + + + Developers using COM can use the ComHelper.CheckZip(String) + method. + + + + + The filename to of the zip file to check. + + true if the named zip file checks OK. Otherwise, false. + + + + + + + Checks a zip file to see if its directory is consistent, + and optionally fixes the directory if necessary. + + + + + + In cases of data error, the directory within a zip file can get out of + synch with the entries in the zip file. This method checks the given + zip file, and returns true if this has occurred. It also optionally + fixes the zipfile, saving the fixed copy in Name_Fixed.zip. + + + + This method may take a long time to run for large zip files. It + will take even longer if the file actually needs to be fixed, and if + fixIfNecessary is true. + + + + This method is not supported in the Reduced version of DotNetZip. + + + + + The filename to of the zip file to check. + + If true, the method will fix the zip file if + necessary. + + + a TextWriter in which messages generated while checking will be written. + + + true if the named zip is OK; false if the file needs to be fixed. + + + + + + + Rewrite the directory within a zipfile. + + + + + + In cases of data error, the directory in a zip file can get out of + synch with the entries in the zip file. This method attempts to fix + the zip file if this has occurred. + + + This can take a long time for large zip files. + + This won't work if the zip file uses a non-standard + code page - neither IBM437 nor UTF-8. + + + This method is not supported in the Reduced or Compact Framework + versions of DotNetZip. + + + + Developers using COM can use the ComHelper.FixZipDirectory(String) + method. + + + + + The filename to of the zip file to fix. + + + + + + + Verify the password on a zip file. + + + + + Keep in mind that passwords in zipfiles are applied to + zip entries, not to the entire zip file. So testing a + zipfile for a particular password doesn't work in the + general case. On the other hand, it's often the case + that a single password will be used on all entries in a + zip file. This method works for that case. + + + There is no way to check a password without doing the + decryption. So this code decrypts and extracts the given + zipfile into + + + + The filename to of the zip file to fix. + + The password to check. + + a bool indicating whether the password matches. + + + + Provides a human-readable string with information about the ZipFile. + + + + + The information string contains 10 lines or so, about each ZipEntry, + describing whether encryption is in use, the compressed and uncompressed + length of the entry, the offset of the entry, and so on. As a result the + information string can be very long for zip files that contain many + entries. + + + This information is mostly useful for diagnostic purposes. + + + + + + Indicates whether to perform a full scan of the zip file when reading it. + + + + + + You almost never want to use this property. + + + + When reading a zip file, if this flag is true (True in + VB), the entire zip archive will be scanned and searched for entries. + For large archives, this can take a very, long time. The much more + efficient default behavior is to read the zip directory, which is + stored at the end of the zip file. But, in some cases the directory is + corrupted and you need to perform a full scan of the zip file to + determine the contents of the zip file. This property lets you do + that, when necessary. + + + + This flag is effective only when calling . Normally you would read a ZipFile with the + static ZipFile.Read + method. But you can't set the FullScan property on the + ZipFile instance when you use a static factory method like + ZipFile.Read. + + + + + + + This example shows how to read a zip file using the full scan approach, + and then save it, thereby producing a corrected zip file. + + + using (var zip = new ZipFile()) + { + zip.FullScan = true; + zip.Initialize(zipFileName); + zip.Save(newName); + } + + + + Using zip As New ZipFile + zip.FullScan = True + zip.Initialize(zipFileName) + zip.Save(newName) + End Using + + + + + + + Whether to sort the ZipEntries before saving the file. + + + + The default is false. If you have a large number of zip entries, the sort + alone can consume significant time. + + + + + using (var zip = new ZipFile()) + { + zip.AddFiles(filesToAdd); + zip.SortEntriesBeforeSaving = true; + zip.Save(name); + } + + + + Using zip As New ZipFile + zip.AddFiles(filesToAdd) + zip.SortEntriesBeforeSaving = True + zip.Save(name) + End Using + + + + + + + Indicates whether NTFS Reparse Points, like junctions, should be + traversed during calls to AddDirectory(). + + + + By default, calls to AddDirectory() will traverse NTFS reparse + points, like mounted volumes, and directory junctions. An example + of a junction is the "My Music" directory in Windows Vista. In some + cases you may not want DotNetZip to traverse those directories. In + that case, set this property to false. + + + + + using (var zip = new ZipFile()) + { + zip.AddDirectoryWillTraverseReparsePoints = false; + zip.AddDirectory(dirToZip,"fodder"); + zip.Save(zipFileToCreate); + } + + + + + + Size of the IO buffer used while saving. + + + + + + First, let me say that you really don't need to bother with this. It is + here to allow for optimizations that you probably won't make! It will work + fine if you don't set or get this property at all. Ok? + + + + Now that we have that out of the way, the fine print: This + property affects the size of the buffer that is used for I/O for each + entry contained in the zip file. When a file is read in to be compressed, + it uses a buffer given by the size here. When you update a zip file, the + data for unmodified entries is copied from the first zip file to the + other, through a buffer given by the size here. + + + + Changing the buffer size affects a few things: first, for larger buffer + sizes, the memory used by the ZipFile, obviously, will be larger + during I/O operations. This may make operations faster for very much + larger files. Last, for any given entry, when you use a larger buffer + there will be fewer progress events during I/O operations, because there's + one progress event generated for each time the buffer is filled and then + emptied. + + + + The default buffer size is 8k. Increasing the buffer size may speed + things up as you compress larger files. But there are no hard-and-fast + rules here, eh? You won't know til you test it. And there will be a + limit where ever larger buffers actually slow things down. So as I said + in the beginning, it's probably best if you don't set or get this property + at all. + + + + + + This example shows how you might set a large buffer size for efficiency when + dealing with zip entries that are larger than 1gb. + + using (ZipFile zip = new ZipFile()) + { + zip.SaveProgress += this.zip1_SaveProgress; + zip.AddDirectory(directoryToZip, ""); + zip.UseZip64WhenSaving = Zip64Option.Always; + zip.BufferSize = 65536*8; // 65536 * 8 = 512k + zip.Save(ZipFileToCreate); + } + + + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + + When doing ZLIB or Deflate compression, the library fills a buffer, + then passes it to the compressor for compression. Then the library + reads out the compressed bytes. This happens repeatedly until there + is no more uncompressed data to compress. This property sets the + size of the buffer that will be used for chunk-wise compression. In + order for the setting to take effect, your application needs to set + this property before calling one of the ZipFile.Save() + overloads. + + + Setting this affects the performance and memory efficiency of + compression and decompression. For larger files, setting this to a + larger size may improve compression performance, but the exact + numbers vary depending on available memory, the size of the streams + you are compressing, and a bunch of other variables. I don't have + good firm recommendations on how to set it. You'll have to test it + yourself. Or just leave it alone and accept the default. + + + + + + Indicates whether extracted files should keep their paths as + stored in the zip archive. + + + + + This property affects Extraction. It is not used when creating zip + archives. + + + + With this property set to false, the default, extracting entries + from a zip file will create files in the filesystem that have the full + path associated to the entry within the zip file. With this property set + to true, extracting entries from the zip file results in files + with no path: the folders are "flattened." + + + + An example: suppose the zip file contains entries /directory1/file1.txt and + /directory2/file2.txt. With FlattenFoldersOnExtract set to false, + the files created will be \directory1\file1.txt and \directory2\file2.txt. + With the property set to true, the files created are file1.txt and file2.txt. + + + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when + compressing entries using the DEFLATE method. Different compression + strategies work better on different sorts of data. The strategy + parameter can affect the compression ratio and the speed of + compression but not the correctness of the compresssion. For more + information see Ionic.Zlib.CompressionStrategy. + + + + + The name of the ZipFile, on disk. + + + + + + When the ZipFile instance was created by reading an archive using + one of the ZipFile.Read methods, this property represents the name + of the zip file that was read. When the ZipFile instance was + created by using the no-argument constructor, this value is null + (Nothing in VB). + + + + If you use the no-argument constructor, and you then explicitly set this + property, when you call , this name will + specify the name of the zip file created. Doing so is equivalent to + calling . When instantiating a + ZipFile by reading from a stream or byte array, the Name + property remains null. When saving to a stream, the Name + property is implicitly set to null. + + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified compression level. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method for the zipfile. + + + + By default, the compression method is CompressionMethod.Deflate. + + + + + + + A comment attached to the zip archive. + + + + + + This property is read/write. It allows the application to specify a + comment for the ZipFile, or read the comment for the + ZipFile. After setting this property, changes are only made + permanent when you call a Save() method. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zip file that is + not readable by any tool or application. For best interoperability, leave + alone, or specify it only + once, before adding any entries to the ZipFile instance. + + + + + + + Specifies whether the Creation, Access, and Modified times for entries + added to the zip file will be emitted in “Windows format” + when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Windows. By default this flag is + true, meaning the Windows-format times are stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to + DateTime.Now. Applications can also explicitly set those times by + calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications typically + use: seconds since January 1, 1970 UTC. Each format can be stored in an + "extra field" in the zip entry when saving the zip archive. The former + uses an extra field with a Header Id of 0x000A, while the latter uses a + header ID of 0x5455, although you probably don't need to know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries + may be able to read only one or the other. DotNetZip can read or write + times in either or both formats. + + + + The times stored are taken from , , and . + + + + The value set here applies to all entries subsequently added to the + ZipFile. + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the archive, a time that is always stored in "DOS format". And, + notwithstanding the names PKWare uses for these time formats, any of them + can be read and written by any computer, on any operating system. But, + there are no guarantees that a program running on Mac or Linux will + gracefully handle a zip file with "Windows" formatted times, or that an + application that does not use DotNetZip but runs on Windows will be able to + handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + This example shows how to save a zip file that contains file timestamps + in a format normally used by Unix. + + using (var zip = new ZipFile()) + { + // produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = false; + zip.EmitTimesInUnixFormatWhenSaving = true; + zip.AddDirectory(directoryToZip, "files"); + zip.Save(outputFile); + } + + + + Using zip As New ZipFile + '' produce a zip file the Mac will like + zip.EmitTimesInWindowsFormatWhenSaving = False + zip.EmitTimesInUnixFormatWhenSaving = True + zip.AddDirectory(directoryToZip, "files") + zip.Save(outputFile) + End Using + + + + + + + + + Specifies whether the Creation, Access, and Modified times + for entries added to the zip file will be emitted in "Unix(tm) + format" when the zip archive is saved. + + + + + An application creating a zip archive can use this flag to explicitly + specify that the file times for the entries should or should not be stored + in the zip archive in the format used by Unix. By default this flag is + false, meaning the Unix-format times are not stored in the zip + archive. + + + + When adding an entry from a file or directory, the Creation (), Access (), and Modified () times for the given entry are + automatically set from the filesystem values. When adding an entry from a + stream or string, all three values are implicitly set to DateTime.Now. + Applications can also explicitly set those times by calling . + + + + PKWARE's + zip specification describes multiple ways to format these times in a + zip file. One is the format Windows applications normally use: 100ns ticks + since January 1, 1601 UTC. The other is a format Unix applications + typically use: seconds since January 1, 1970 UTC. Each format can be + stored in an "extra field" in the zip entry when saving the zip + archive. The former uses an extra field with a Header Id of 0x000A, while + the latter uses a header ID of 0x5455, although you probably don't need to + know that. + + + + Not all tools and libraries can interpret these fields. Windows + compressed folders is one that can read the Windows Format timestamps, + while I believe the Infozip + tools can read the Unix format timestamps. Some tools and libraries may be + able to read only one or the other. DotNetZip can read or write times in + either or both formats. + + + + The times stored are taken from , , and . + + + + This property is not mutually exclusive of the property. It is possible and + legal and valid to produce a zip file that contains timestamps encoded in + the Unix format as well as in the Windows format, in addition to the LastModified time attached to each + entry in the zip archive, a time that is always stored in "DOS + format". And, notwithstanding the names PKWare uses for these time + formats, any of them can be read and written by any computer, on any + operating system. But, there are no guarantees that a program running on + Mac or Linux will gracefully handle a zip file with "Windows" formatted + times, or that an application that does not use DotNetZip but runs on + Windows will be able to handle file times in Unix format. + + + + When in doubt, test. Sorry, I haven't got a complete list of tools and + which sort of timestamps they can use and will tolerate. If you get any + good information and would like to pass it on, please do so and I will + include that information in this documentation. + + + + + + + + + Indicates whether verbose output is sent to the during AddXxx() and + ReadXxx() operations. + + + + This is a synthetic property. It returns true if the is non-null. + + + + + Returns true if an entry by the given name exists in the ZipFile. + + + the name of the entry to find + true if an entry with the given name exists; otherwise false. + + + + + Indicates whether to perform case-sensitive matching on the filename when + retrieving entries in the zipfile via the string-based indexer. + + + + The default value is false, which means don't do case-sensitive + matching. In other words, retrieving zip["ReadMe.Txt"] is the same as + zip["readme.txt"]. It really makes sense to set this to true only + if you are not running on Windows, which has case-insensitive + filenames. But since this library is not built for non-Windows platforms, + in most cases you should just leave this property alone. + + + + + Indicates whether to ignore duplicate files (report only the first entry) + when loading a zipfile. + + + + The default value is false, which will try to make all files + available (duplicates will have a "copy" suffix appended to their name). + Setting this to true prior to using Initialize to read a + zipfile will prevent this and instead just ignore the duplicates. + + + + + Indicates whether to encode entry filenames and entry comments using Unicode + (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + your ZipFile will encode all filenames and comments using the + IBM437 codepage. This can cause "loss of information" on some filenames, + but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipFile, then adds two files, each with + names of four Chinese characters each, this will result in a duplicate + filename exception. In the case where you add a single file with a name + containing four Chinese characters, calling Extract() on the entry that + has question marks in the filename will result in an exception, because + the question mark is not legal for use within filenames on Windows. These + are just a few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + + When creating a zip file, the default value for the property is . is + safest, in the sense that you will not get an Exception if a pre-ZIP64 + limit is exceeded. + + + + You may set the property at any time before calling Save(). + + + + When reading a zip file via the Zipfile.Read() method, DotNetZip + will properly read ZIP64-endowed zip archives, regardless of the value of + this property. DotNetZip will always read ZIP64 archives. This property + governs only whether DotNetZip will write them. Therefore, when updating + archives, be careful about setting this property after reading an archive + that may use ZIP64 extensions. + + + + An interesting question is, if you have set this property to + AsNecessary, and then successfully saved, does the resulting + archive use ZIP64 extensions or not? To learn this, check the property, after calling Save(). + + + + Have you thought about + donating? + + + + + + + + Indicates whether the archive requires ZIP64 extensions. + + + + + + This property is null (or Nothing in VB) if the archive has + not been saved, and there are fewer than 65334 ZipEntry items + contained in the archive. + + + + The Value is true if any of the following four conditions holds: + the uncompressed size of any entry is larger than 0xFFFFFFFF; the + compressed size of any entry is larger than 0xFFFFFFFF; the relative + offset of any entry within the zip archive is larger than 0xFFFFFFFF; or + there are more than 65534 entries in the archive. (0xFFFFFFFF = + 4,294,967,295). The result may not be known until a Save() is attempted + on the zip archive. The Value of this + property may be set only AFTER one of the Save() methods has been called. + + + + If none of the four conditions holds, and the archive has been saved, then + the Value is false. + + + + A Value of false does not indicate that the zip archive, as saved, + does not use ZIP64. It merely indicates that ZIP64 is not required. An + archive may use ZIP64 even when not required if the property is set to , or if the property is set to and the output stream was not + seekable. Use the property to determine if + the most recent Save() method resulted in an archive that utilized + the ZIP64 extensions. + + + + + + + + + Indicates whether the most recent Save() operation used ZIP64 extensions. + + + + + The use of ZIP64 extensions within an archive is not always necessary, and + for interoperability concerns, it may be desired to NOT use ZIP64 if + possible. The property can be + set to use ZIP64 extensions only when necessary. In those cases, + Sometimes applications want to know whether a Save() actually used ZIP64 + extensions. Applications can query this read-only property to learn + whether ZIP64 has been used in a just-saved ZipFile. + + + + The value is null (or Nothing in VB) if the archive has not + been saved. + + + + Non-null values (HasValue is true) indicate whether ZIP64 + extensions were used during the most recent Save() operation. The + ZIP64 extensions may have been used as required by any particular entry + because of its uncompressed or compressed size, or because the archive is + larger than 4294967295 bytes, or because there are more than 65534 entries + in the archive, or because the UseZip64WhenSaving property was set + to , or because the + UseZip64WhenSaving property was set to and the output stream was not seekable. + The value of this property does not indicate the reason the ZIP64 + extensions were used. + + + + + + + + + Indicates whether the most recent Read() operation read a zip file that uses + ZIP64 extensions. + + + + This property will return null (Nothing in VB) if you've added an entry after reading + the zip file. + + + + + The text encoding to use when writing new entries to the ZipFile, + for those entries that cannot be encoded with the default (IBM437) + encoding; or, the text encoding that was used when reading the entries + from the ZipFile. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of between each + entry you add, and between adding entries and the call to + Save(). Don't do this. It will likely result in a zipfile that is + not readable. For best interoperability, either leave alone, or specify it only once, + before adding any entries to the ZipFile instance. There is one + exception to this recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. In other words, if you explicitly specify the codepage when you + create the zipfile, you must explicitly specify the same codepage when + reading the zipfile. + + + + The way you specify the code page to use when reading a zip file varies + depending on the tool or library you use to read the zip. In DotNetZip, + you use a ZipFile.Read() method that accepts an encoding parameter. It + isn't possible with Windows Explorer, as far as I know, to specify an + explicit codepage to use when reading a zip. If you use an incorrect + codepage when reading a zipfile, you will get entries with filenames that + are incorrect, and the incorrect filenames may even contain characters + that are not legal for use within filenames in Windows. Extracting entries + with illegal characters in the filenames will lead to exceptions. It's too + bad, but this is just the way things are with code pages in zip + files. Caveat Emptor. + + + + Example: Suppose you create a zipfile that contains entries with + filenames that have Danish characters. If you use equal to "iso-8859-1" (cp 28591), + the filenames will be correctly encoded in the zip. But, to read that + zipfile correctly, you have to specify the same codepage at the time you + read it. If try to read that zip file with Windows Explorer or another + application that is not flexible with respect to the codepage used to + decode filenames in zipfiles, you will get a filename like "Inf�.txt". + + + + When using DotNetZip to read a zip archive, and the zip archive uses an + arbitrary code page, you must specify the encoding to use before or when + the Zipfile is READ. This means you must use a ZipFile.Read() + method that allows you to specify a System.Text.Encoding parameter. Setting + the ProvisionalAlternateEncoding property after your application has read in + the zip archive will not affect the entry names of entries that have already + been read in. + + + + And now, the exception to the rule described above. One strategy for + specifying the code page for a given zip file is to describe the code page + in a human-readable form in the Zip comment. For example, the comment may + read "Entries in this archive are encoded in the Big5 code page". For + maximum interoperability, the zip comment in this case should be encoded + in the default, IBM437 code page. In this case, the zip comment is + encoded using a different page than the filenames. To do this, Specify + ProvisionalAlternateEncoding to your desired region-specific code + page, once before adding any entries, and then reset + ProvisionalAlternateEncoding to IBM437 before setting the property and calling Save(). + + + + + This example shows how to read a zip file using the Big-5 Chinese code page + (950), and extract each entry in the zip file. For this code to work as + desired, the Zipfile must have been created using the big5 code page + (CP950). This is typical, for example, when using WinRar on a machine with + CP950 set as the default code page. In that case, the names of entries + within the Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did not use + the correct code page in ZipFile.Read(), then names of entries within the + zip archive would not be correctly retrieved. + + using (var zip = ZipFile.Read(zipFileName, System.Text.Encoding.GetEncoding("big5"))) + { + // retrieve and extract an entry using a name encoded with CP950 + zip[MyDesiredEntry].Extract("unpack"); + } + + + + Using zip As ZipFile = ZipFile.Read(ZipToExtract, System.Text.Encoding.GetEncoding("big5")) + ' retrieve and extract an entry using a name encoded with CP950 + zip(MyDesiredEntry).Extract("unpack") + End Using + + + + DefaultEncoding + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + Gets or sets the TextWriter to which status messages are delivered + for the instance. + + + + If the TextWriter is set to a non-null value, then verbose output is sent + to the TextWriter during Add, Read, Save and + Extract operations. Typically, console applications might use + Console.Out and graphical or headless applications might use a + System.IO.StringWriter. The output of this is suitable for viewing + by humans. + + + + + In this example, a console application instantiates a ZipFile, then + sets the StatusMessageTextWriter to Console.Out. At that + point, all verbose status messages for that ZipFile are sent to the + console. + + + + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= System.Console.Out; + // messages are sent to the console during extraction + zip.ExtractAll(); + } + + + + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= System.Console.Out + 'Status Messages will be sent to the console during extraction + zip.ExtractAll() + End Using + + + + In this example, a Windows Forms application instantiates a + ZipFile, then sets the StatusMessageTextWriter to a + StringWriter. At that point, all verbose status messages for that + ZipFile are sent to the StringWriter. + + + + var sw = new System.IO.StringWriter(); + using (ZipFile zip= ZipFile.Read(FilePath)) + { + zip.StatusMessageTextWriter= sw; + zip.ExtractAll(); + } + Console.WriteLine("{0}", sw.ToString()); + + + + Dim sw as New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read(FilePath) + zip.StatusMessageTextWriter= sw + zip.ExtractAll() + End Using + 'Status Messages are now available in sw + + + + + + + Gets or sets the name for the folder to store the temporary file + this library writes when saving a zip archive. + + + + + This library will create a temporary file when saving a Zip archive to a + file. This file is written when calling one of the Save() methods + that does not save to a stream, or one of the SaveSelfExtractor() + methods. + + + + By default, the library will create the temporary file in the directory + specified for the file itself, via the property or via + the method. + + + + Setting this property allows applications to override this default + behavior, so that the library will create the temporary file in the + specified folder. For example, to have the library create the temporary + file in the current working directory, regardless where the ZipFile + is saved, specfy ".". To revert to the default behavior, set this + property to null (Nothing in VB). + + + + When setting the property to a non-null value, the folder specified must + exist; if it does not an exception is thrown. The application should have + write and delete permissions on the folder. The permissions are not + explicitly checked ahead of time; if the application does not have the + appropriate rights, an exception will be thrown at the time Save() + is called. + + + + There is no temporary file created when reading a zip archive. When + saving to a Stream, there is no temporary file created. For example, if + the application is an ASP.NET application and calls Save() + specifying the Response.OutputStream as the output stream, there is + no temporary file created. + + + + + Thrown when setting the property if the directory does not exist. + + + + + + Sets the password to be used on the ZipFile instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + added to the ZipFile, using one of the AddFile, + AddDirectory, AddEntry, or AddItem methods, etc. + When reading a zip archive, this property applies to any entry + subsequently extracted from the ZipFile using one of the Extract + methods on the ZipFile class. + + + + When writing a zip archive, keep this in mind: though the password is set + on the ZipFile object, according to the Zip spec, the "directory" of the + archive - in other words the list of entries or files contained in the archive - is + not encrypted with the password, or protected in any way. If you set the + Password property, the password actually applies to individual entries + that are added to the archive, subsequent to the setting of this property. + The list of filenames in the archive that is eventually created will + appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + One simple way around this limitation is to simply double-wrap sensitive + filenames: Store the files in a zip file, and then store that zip file + within a second, "outer" zip file. If you apply a password to the outer + zip file, then readers will be able to see that the outer zip file + contains an inner zip file. But readers will not be able to read the + directory or file list of the inner zip file. + + + + If you set the password on the ZipFile, and then add a set of files + to the archive, then each entry is encrypted with that password. You may + also want to change the password between adding different entries. If you + set the password, add an entry, then set the password to null + (Nothing in VB), and add another entry, the first entry is + encrypted and the second is not. If you call AddFile(), then set + the Password property, then call ZipFile.Save, the file + added will not be password-protected, and no warning will be generated. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If you set + the password to a null value (Nothing in VB), Encryption is + reset to None. + + + + All of the preceding applies to writing zip archives, in other words when + you use one of the Save methods. To use this property when reading or an + existing ZipFile, do the following: set the Password property on the + ZipFile, then call one of the Extract() overloads on the . In this case, the entry is extracted using the + Password that is specified on the ZipFile instance. If you + have not set the Password property, then the password is + null, and the entry is extracted with no password. + + + + If you set the Password property on the ZipFile, then call + Extract() an entry that has not been encrypted with a password, the + password is not used for that entry, and the ZipEntry is extracted + as normal. In other words, the password is used only if necessary. + + + + The class also has a Password property. It takes precedence + over this property on the ZipFile. Typically, you would use the + per-entry Password when most entries in the zip archive use one password, + and a few entries use a different password. If all entries in the zip + file use the same password, then it is simpler to just set this property + on the ZipFile itself, whether creating a zip archive or extracting + a zip archive. + + + + + + + This example creates a zip file, using password protection for the + entries, and then extracts the entries from the zip file. When creating + the zip file, the Readme.txt file is not protected with a password, but + the other two are password-protected as they are saved. During extraction, + each file is extracted with the appropriate password. + + + // create a file with encryption + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Password= "!Secret1"; + zip.AddFile("MapToTheSite-7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // extract entries that use encryption + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "!Secret1"; + zip.ExtractAll("extractDir"); + } + + + + + Using zip As New ZipFile + zip.AddFile("ReadMe.txt") + zip.Password = "123456!" + zip.AddFile("MapToTheSite-7440-N49th.png") + zip.Password= "!Secret1"; + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + + ' extract entries that use encryption + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "!Secret1" + zip.ExtractAll("extractDir") + End Using + + + + + + ZipFile.Encryption + ZipEntry.Password + + + + The action the library should take when extracting a file that already + exists. + + + + + This property affects the behavior of the Extract methods (one of the + Extract() or ExtractWithPassword() overloads), when + extraction would would overwrite an existing filesystem file. If you do + not set this property, the library throws an exception when extracting an + entry would overwrite an existing file. + + + + This property has no effect when extracting to a stream, or when the file + to be extracted does not already exist. + + + + + + + The action the library should take when an error is encountered while + opening or reading files as they are saved into a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. + + + + The first problem might occur after having called AddDirectory() on a + directory that contains a Clipper .dbf file; the file is locked by + Clipper and cannot be opened for read by another process. An example of + the second problem might occur when trying to zip a .pst file that is in + use by Microsoft Outlook. Outlook locks a range on the file, which allows + other processes to open the file, but not read it in its entirety. + + + + This property tells DotNetZip what you would like to do in the case of + these errors. The primary options are: ZipErrorAction.Throw to + throw an exception (this is the default behavior if you don't set this + property); ZipErrorAction.Skip to Skip the file for which there + was an error and continue saving; ZipErrorAction.Retry to Retry + the entry that caused the problem; or + ZipErrorAction.InvokeErrorEvent to invoke an event handler. + + + + This property is implicitly set to ZipErrorAction.InvokeErrorEvent + if you add a handler to the event. If you set + this property to something other than + ZipErrorAction.InvokeErrorEvent, then the ZipError + event is implicitly cleared. What it means is you can set one or the + other (or neither), depending on what you want, but you never need to set + both. + + + + As with some other properties on the ZipFile class, like , , and , setting this property on a ZipFile + instance will cause the specified ZipErrorAction to be used on all + items that are subsequently added to the + ZipFile instance. If you set this property after you have added + items to the ZipFile, but before you have called Save(), + those items will not use the specified error handling action. + + + + If you want to handle any errors that occur with any entry in the zip + file in the same way, then set this property once, before adding any + entries to the zip archive. + + + + If you set this property to ZipErrorAction.Skip and you'd like to + learn which files may have been skipped after a Save(), you can + set the on the ZipFile before + calling Save(). A message will be emitted into that writer for + each skipped file, if any. + + + + + + This example shows how to tell DotNetZip to skip any files for which an + error is generated during the Save(). + + Public Sub SaveZipFile() + Dim SourceFolder As String = "fodder" + Dim DestFile As String = "eHandler.zip" + Dim sw as New StringWriter + Using zipArchive As ZipFile = New ZipFile + ' Tell DotNetZip to skip any files for which it encounters an error + zipArchive.ZipErrorAction = ZipErrorAction.Skip + zipArchive.StatusMessageTextWriter = sw + zipArchive.AddDirectory(SourceFolder) + zipArchive.Save(DestFile) + End Using + ' examine sw here to see any messages + End Sub + + + + + + + + + + The Encryption to use for entries added to the ZipFile. + + + + + Set this when creating a zip archive, or when updating a zip archive. The + specified Encryption is applied to the entries subsequently added to the + ZipFile instance. Applications do not need to set the + Encryption property when reading or extracting a zip archive. + + + + If you set this to something other than EncryptionAlgorithm.None, you + will also need to set the . + + + + As with some other properties on the ZipFile class, like and , setting this + property on a ZipFile instance will cause the specified + EncryptionAlgorithm to be used on all items + that are subsequently added to the ZipFile instance. In other + words, if you set this property after you have added items to the + ZipFile, but before you have called Save(), those items will + not be encrypted or protected with a password in the resulting zip + archive. To get a zip archive with encrypted entries, set this property, + along with the property, before calling + AddFile, AddItem, or AddDirectory (etc.) on the + ZipFile instance. + + + + If you read a ZipFile, you can modify the Encryption on an + encrypted entry, only by setting the Encryption property on the + ZipEntry itself. Setting the Encryption property on the + ZipFile, once it has been created via a call to + ZipFile.Read(), does not affect entries that were previously read. + + + + For example, suppose you read a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then calling Save() on the ZipFile does not update the + Encryption used for the entries in the archive. Neither is an + exception thrown. Instead, what happens during the Save() is that + all previously existing entries are copied through to the new zip archive, + with whatever encryption and password that was used when originally + creating the zip archive. Upon re-reading that archive, to extract + entries, applications should use the original password or passwords, if + any. + + + + Suppose an application reads a ZipFile, and there is an encrypted + entry. Setting the Encryption property on that ZipFile and + then adding new entries (via AddFile(), AddEntry(), etc) + and then calling Save() on the ZipFile does not update the + Encryption on any of the entries that had previously been in the + ZipFile. The Encryption property applies only to the + newly-added entries. + + + + + + + This example creates a zip archive that uses encryption, and then extracts + entries from the archive. When creating the zip archive, the ReadMe.txt + file is zipped without using a password or encryption. The other files + use encryption. + + + + // Create a zip archive with AES Encryption. + using (ZipFile zip = new ZipFile()) + { + zip.AddFile("ReadMe.txt"); + zip.Encryption= EncryptionAlgorithm.WinZipAes256; + zip.Password= "Top.Secret.No.Peeking!"; + zip.AddFile("7440-N49th.png"); + zip.AddFile("2008-Regional-Sales-Report.pdf"); + zip.Save("EncryptedArchive.zip"); + } + + // Extract a zip archive that uses AES Encryption. + // You do not need to specify the algorithm during extraction. + using (ZipFile zip = ZipFile.Read("EncryptedArchive.zip")) + { + zip.Password= "Top.Secret.No.Peeking!"; + zip.ExtractAll("extractDirectory"); + } + + + + ' Create a zip that uses Encryption. + Using zip As New ZipFile() + zip.Encryption= EncryptionAlgorithm.WinZipAes256 + zip.Password= "Top.Secret.No.Peeking!" + zip.AddFile("ReadMe.txt") + zip.AddFile("7440-N49th.png") + zip.AddFile("2008-Regional-Sales-Report.pdf") + zip.Save("EncryptedArchive.zip") + End Using + + ' Extract a zip archive that uses AES Encryption. + ' You do not need to specify the algorithm during extraction. + Using (zip as ZipFile = ZipFile.Read("EncryptedArchive.zip")) + zip.Password= "Top.Secret.No.Peeking!" + zip.ExtractAll("extractDirectory") + End Using + + + + + ZipFile.Password + ZipEntry.Encryption + + + + A callback that allows the application to specify the compression level + to use for entries subsequently added to the zip archive. + + + + + + With this callback, the DotNetZip library allows the application to + determine whether compression will be used, at the time of the + Save. This may be useful if the application wants to favor + speed over size, and wants to defer the decision until the time of + Save. + + + + Typically applications set the property on + the ZipFile or on each ZipEntry to determine the level of + compression used. This is done at the time the entry is added to the + ZipFile. Setting the property to + Ionic.Zlib.CompressionLevel.None means no compression will be used. + + + + This callback allows the application to defer the decision on the + CompressionLevel to use, until the time of the call to + ZipFile.Save(). The callback is invoked once per ZipEntry, + at the time the data for the entry is being written out as part of a + Save() operation. The application can use whatever criteria it + likes in determining the level to return. For example, an application may + wish that no .mp3 files should be compressed, because they are already + compressed and the extra compression is not worth the CPU time incurred, + and so can return None for all .mp3 entries. + + + + The library determines whether compression will be attempted for an entry + this way: If the entry is a zero length file, or a directory, no + compression is used. Otherwise, if this callback is set, it is invoked + and the CompressionLevel is set to the return value. If this + callback has not been set, then the previously set value for + CompressionLevel is used. + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + Make sure you do not read from this field if you've set the value using + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + The maximum size of an output segment, when saving a split Zip file. + + + + If you set this value, make sure you do not accidently use in your code + + + + Set this to a non-zero value before calling or to specify that the ZipFile should be saved as a + split archive, also sometimes called a spanned archive. Some also + call them multi-file archives. + + + + A split zip archive is saved in a set of discrete filesystem files, + rather than in a single file. This is handy when transmitting the + archive in email or some other mechanism that has a limit to the size of + each file. The first file in a split archive will be named + basename.z01, the second will be named basename.z02, and + so on. The final file is named basename.zip. According to the zip + specification from PKWare, the minimum value is 65536, for a 64k segment + size. The maximum number of segments allows in a split archive is 99. + + + + The value of this property determines the maximum size of a split + segment when writing a split archive. For example, suppose you have a + ZipFile that would save to a single file of 200k. If you set the + MaxOutputSegmentSize to 65536 before calling Save(), you + will get four distinct output files. On the other hand if you set this + property to 256k, then you will get a single-file archive for that + ZipFile. + + + + The size of each split output file will be as large as possible, up to + the maximum size set here. The zip specification requires that some data + fields in a zip archive may not span a split boundary, and an output + segment may be smaller than the maximum if necessary to avoid that + problem. Also, obviously the final segment of the archive may be smaller + than the maximum segment size. Segments will never be larger than the + value set with this property. + + + + You can save a split Zip file only when saving to a regular filesystem + file. It's not possible to save a split zip file as a self-extracting + archive, nor is it possible to save a split zip file to a stream. When + saving to a SFX or to a Stream, this property is ignored. + + + + About interoperability: Split or spanned zip files produced by DotNetZip + can be read by WinZip or PKZip, and vice-versa. Segmented zip files may + not be readable by other tools, if those other tools don't support zip + spanning or splitting. When in doubt, test. I don't believe Windows + Explorer can extract a split archive. + + + + This property has no effect when reading a split archive. You can read + a split archive in the normal way with DotNetZip. + + + + When saving a zip file, if you want a regular zip file rather than a + split zip file, don't set this property, or set it to Zero. + + + + If you read a split archive, with and + then subsequently call ZipFile.Save(), unless you set this + property before calling Save(), you will get a normal, + single-file archive. + + + + + + + + Returns the number of segments used in the most recent Save() operation. + + + + This is normally zero, unless you have set the property. If you have set , and then you save a file, after the call to + Save() completes, you can read this value to learn the number of segments that + were created. + + + If you call Save("Archive.zip"), and it creates 5 segments, then you + will have filesystem files named Archive.z01, Archive.z02, Archive.z03, + Archive.z04, and Archive.zip, and the value of this property will be 5. + + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, + if the entry is larger than the given size. Zero means "always + use parallel deflate", while -1 means "never use parallel + deflate". The default value for this property is 512k. Aside + from the special values of 0 and 1, the minimum value is 65536. + + + + If the entry size cannot be known before compression, as with a + read-forward stream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is not as effective. + + + + Parallel deflate tends to yield slightly less compression when + compared to as single-threaded deflate; this is because the original + data stream is split into multiple independent buffers, each of which + is compressed in parallel. But because they are treated + independently, there is no opportunity to share compression + dictionaries. For that reason, a deflated stream may be slightly + larger when compressed using parallel deflate, as compared to a + traditional single-threaded deflate. Sometimes the increase over the + normal deflate is as much as 5% of the total compressed size. For + larger files it can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when + using Encryption. This is primarily because encryption tends to slow + down the entire pipeline. Also, multi-threaded compression gives less + of an advantage when using lower compression levels, for example . You may have to + perform some tests to determine the best approach for your situation. + + + + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time + before calling ZipFile.Save(). + + + + + + + + Provides a string representation of the instance. + a string representation of the instance. + + + + Returns the version number on the DotNetZip assembly. + + + + + This property is exposed as a convenience. Callers could also get the + version value by retrieving GetName().Version on the + System.Reflection.Assembly object pointing to the DotNetZip + assembly. But sometimes it is not clear which assembly is being loaded. + This property makes it clear. + + + This static property is primarily useful for diagnostic purposes. + + + + + + Creates a new ZipFile instance, using the specified filename. + + + + + Applications can use this constructor to create a new ZipFile for writing, + or to slurp in an existing zip archive for read and update purposes. + + + + To create a new zip archive, an application can call this constructor, + passing the name of a file that does not exist. The name may be a fully + qualified path. Then the application can add directories or files to the + ZipFile via AddDirectory(), AddFile(), AddItem() + and then write the zip archive to the disk by calling Save(). The + zip file is not actually opened and written to the disk until the + application calls ZipFile.Save(). At that point the new zip file + with the given name is created. + + + + If you won't know the name of the Zipfile until the time you call + ZipFile.Save(), or if you plan to save to a stream (which has no + name), then you should use the no-argument constructor. + + + + The application can also call this constructor to read an existing zip + archive. passing the name of a valid zip file that does exist. But, it's + better form to use the static method, + passing the name of the zip file, because using ZipFile.Read() in + your code communicates very clearly what you are doing. In either case, + the file is then read into the ZipFile instance. The app can then + enumerate the entries or can modify the zip file, for example adding + entries, removing entries, changing comments, and so on. + + + + One advantage to this parameterized constructor: it allows applications to + use the same code to add items to a zip archive, regardless of whether the + zip file exists. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + By the way, since DotNetZip is so easy to use, don't you think you should + donate $5 or $10? + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + This example shows how to create a zipfile, and add a few files into it. + + String ZipFileToCreate = "archive1.zip"; + String DirectoryToZip = "c:\\reports"; + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save(ZipFileToCreate); + } + + + + Dim ZipFileToCreate As String = "archive1.zip" + Dim DirectoryToZip As String = "c:\reports" + Using zip As ZipFile = New ZipFile() + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save(ZipFileToCreate) + End Using + + + + The filename to use for the new zip archive. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified Encoding. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + This is equivalent to setting the property on the ZipFile + instance after construction. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + The Encoding is used as the default alternate + encoding for entries with filenames or comments that cannot be encoded + with the IBM437 code page. + + + + Create a zip file, without specifying a target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + After instantiating with this constructor and adding entries to the + archive, the application should call or + to save to a file or a + stream, respectively. The application can also set the + property and then call the no-argument method. (This + is the preferred approach for applications that use the library through + COM interop.) If you call the no-argument method + without having set the Name of the ZipFile, either through + the parameterized constructor or through the explicit property , the + Save() will throw, because there is no place to save the file. + + + Instances of the ZipFile class are not multi-thread safe. You may + have multiple threads that each use a distinct ZipFile instance, or + you can synchronize multi-thread access to a single instance. + + + + + This example creates a Zip archive called Backup.zip, containing all the files + in the directory DirectoryToZip. Files within subdirectories are not zipped up. + + using (ZipFile zip = new ZipFile()) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames, "files"); + zip.Save("Backup.zip"); + } + + + + Using zip As New ZipFile + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames, "files") + zip.Save("Backup.zip") + End Using + + + + + + Create a zip file, specifying a text Encoding, but without specifying a + target filename or stream to save to. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Creates a new ZipFile instance, using the specified name for the + filename, and the specified status message writer. + + + + + See the documentation on the ZipFile + constructor that accepts a single string argument for basic + information on all the ZipFile constructors. + + + + This version of the constructor allows the caller to pass in a TextWriter, + to which verbose messages will be written during extraction or creation of + the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or headless + application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of ZipFile operations. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if name refers to an existing file that is not a valid zip file. + + + + + using (ZipFile zip = new ZipFile("Backup.zip", Console.Out)) + { + // Store all files found in the top level directory, into the zip archive. + // note: this code does not recurse subdirectories! + // Status messages will be written to Console.Out + String[] filenames = System.IO.Directory.GetFiles(DirectoryToZip); + zip.AddFiles(filenames); + zip.Save(); + } + + + + Using zip As New ZipFile("Backup.zip", Console.Out) + ' Store all files found in the top level directory, into the zip archive. + ' note: this code does not recurse subdirectories! + ' Status messages will be written to Console.Out + Dim filenames As String() = System.IO.Directory.GetFiles(DirectoryToZip) + zip.AddFiles(filenames) + zip.Save() + End Using + + + + The filename to use for the new zip archive. + A TextWriter to use for writing + verbose status messages. + + + + Creates a new ZipFile instance, using the specified name for the + filename, the specified status message writer, and the specified Encoding. + + + + + This constructor works like the ZipFile + constructor that accepts a single string argument. See that + reference for detail on what this constructor does. + + + + This version of the constructor allows the caller to pass in a + TextWriter, and an Encoding. The TextWriter will collect + verbose messages that are generated by the library during extraction or + creation of the zip archive. A console application may wish to pass + System.Console.Out to get messages on the Console. A graphical or + headless application may wish to capture the messages in a different + TextWriter, for example, a StringWriter, and then display + the messages in a TextBox, or generate an audit log of + ZipFile operations. + + + + The Encoding is used as the default alternate encoding for entries + with filenames or comments that cannot be encoded with the IBM437 code + page. This is a equivalent to setting the property on the ZipFile + instance after construction. + + + + To encrypt the data for the files added to the ZipFile instance, + set the Password property after creating the ZipFile + instance. + + + + Instances of the ZipFile class are not multi-thread safe. You may + not party on a single instance with multiple threads. You may have + multiple threads that each use a distinct ZipFile instance, or you + can synchronize multi-thread access to a single instance. + + + + + + Thrown if fileName refers to an existing file that is not a valid zip file. + + + The filename to use for the new zip archive. + A TextWriter to use for writing verbose + status messages. + + The Encoding is used as the default alternate encoding for entries with + filenames or comments that cannot be encoded with the IBM437 code page. + + + + + Initialize a ZipFile instance by reading in a zip file. + + + + + + This method is primarily useful from COM Automation environments, when + reading or extracting zip files. In COM, it is not possible to invoke + parameterized constructors for a class. A COM Automation application can + update a zip file by using the default (no argument) + constructor, then calling Initialize() to read the contents + of an on-disk zip archive into the ZipFile instance. + + + + .NET applications are encouraged to use the ZipFile.Read() methods + for better clarity. + + + + the name of the existing zip file to read in. + + + + This is an integer indexer into the Zip archive. + + + + + This property is read-only. + + + + Internally, the ZipEntry instances that belong to the + ZipFile are stored in a Dictionary. When you use this + indexer the first time, it creates a read-only + List<ZipEntry> from the Dictionary.Values Collection. + If at any time you modify the set of entries in the ZipFile, + either by adding an entry, removing an entry, or renaming an + entry, a new List will be created, and the numeric indexes for the + remaining entries may be different. + + + + This means you cannot rename any ZipEntry from + inside an enumeration of the zip file. + + + + The index value. + + + + + + The ZipEntry within the Zip archive at the specified index. If the + entry does not exist in the archive, this indexer throws. + + + + + + This is a name-based indexer into the Zip archive. + + + + + This property is read-only. + + + + The property on the ZipFile + determines whether retrieval via this indexer is done via case-sensitive + comparisons. By default, retrieval is not case sensitive. This makes + sense on Windows, in which filesystems are not case sensitive. + + + + Regardless of case-sensitivity, it is not always the case that + this[value].FileName == value. In other words, the FileName + property of the ZipEntry retrieved with this indexer, may or may + not be equal to the index value. + + + + This is because DotNetZip performs a normalization of filenames passed to + this indexer, before attempting to retrieve the item. That normalization + includes: removal of a volume letter and colon, swapping backward slashes + for forward slashes. So, zip["dir1\\entry1.txt"].FileName == + "dir1/entry.txt". + + + + Directory entries in the zip file may be retrieved via this indexer only + with names that have a trailing slash. DotNetZip automatically appends a + trailing slash to the names of any directory entries added to a zip. + + + + + + This example extracts only the entries in a zip file that are .txt files. + + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip")) + { + foreach (string s1 in zip.EntryFilenames) + { + if (s1.EndsWith(".txt")) + zip[s1].Extract("textfiles"); + } + } + + + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip") + Dim s1 As String + For Each s1 In zip.EntryFilenames + If s1.EndsWith(".txt") Then + zip(s1).Extract("textfiles") + End If + Next + End Using + + + + + + Thrown if the caller attempts to assign a non-null value to the indexer. + + + + The name of the file, including any directory path, to retrieve from the + zip. The filename match is not case-sensitive by default; you can use the + property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + The ZipEntry within the Zip archive, given by the specified + filename. If the named entry does not exist in the archive, this indexer + returns null (Nothing in VB). + + + + + + The list of filenames for the entries contained within the zip archive. + + + + According to the ZIP specification, the names of the entries use forward + slashes in pathnames. If you are scanning through the list, you may have + to swap forward slashes for backslashes. + + + + + + This example shows one way to test if a filename is already contained + within a zip archive. + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = new ZipFile(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", + candidate, + zipFileName); + else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", + candidate, + zipFileName); + Console.WriteLine(); + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile.Read(ZipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + Console.WriteLine("The file '{0}' exists in the zip archive '{1}'", _ + candidate, _ + zipFileName) + Else + Console.WriteLine("The file, '{0}', does not exist in the zip archive '{1}'", _ + candidate, _ + zipFileName) + End If + Console.WriteLine + End Using + + + + + The list of strings for the filenames contained within the Zip archive. + + + + + + Returns the readonly collection of entries in the Zip archive. + + + + + + If there are no entries in the current ZipFile, the value returned is a + non-null zero-element collection. If there are entries in the zip file, + the elements are returned in no particular order. + + + This is the implied enumerator on the ZipFile class. If you use a + ZipFile instance in a context that expects an enumerator, you will + get this collection. + + + + + + + Returns a readonly collection of entries in the Zip archive, sorted by FileName. + + + + If there are no entries in the current ZipFile, the value returned + is a non-null zero-element collection. If there are entries in the zip + file, the elements are returned sorted by the name of the entry. + + + + + This example fills a Windows Forms ListView with the entries in a zip file. + + + using (ZipFile zip = ZipFile.Read(zipFile)) + { + foreach (ZipEntry entry in zip.EntriesSorted) + { + ListViewItem item = new ListViewItem(n.ToString()); + n++; + string[] subitems = new string[] { + entry.FileName.Replace("/","\\"), + entry.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + entry.UncompressedSize.ToString(), + String.Format("{0,5:F0}%", entry.CompressionRatio), + entry.CompressedSize.ToString(), + (entry.UsesEncryption) ? "Y" : "N", + String.Format("{0:X8}", entry.Crc)}; + + foreach (String s in subitems) + { + ListViewItem.ListViewSubItem subitem = new ListViewItem.ListViewSubItem(); + subitem.Text = s; + item.SubItems.Add(subitem); + } + + this.listView1.Items.Add(item); + } + } + + + + + + + + Returns the number of entries in the Zip archive. + + + + + Removes the given ZipEntry from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + Thrown if the specified ZipEntry does not exist in the ZipFile. + + + + In this example, all entries in the zip archive dating from before + December 31st, 2007, are removed from the archive. This is actually much + easier if you use the RemoveSelectedEntries method. But I needed an + example for RemoveEntry, so here it is. + + String ZipFileToRead = "ArchiveToModify.zip"; + System.DateTime Threshold = new System.DateTime(2007,12,31); + using (ZipFile zip = ZipFile.Read(ZipFileToRead)) + { + var EntriesToRemove = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + { + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e); + } + } + + // actually remove the doomed entries. + foreach (ZipEntry zombie in EntriesToRemove) + zip.RemoveEntry(zombie); + + zip.Comment= String.Format("This zip archive was updated at {0}.", + System.DateTime.Now.ToString("G")); + + // save with a different name + zip.Save("Archive-Updated.zip"); + } + + + + Dim ZipFileToRead As String = "ArchiveToModify.zip" + Dim Threshold As New DateTime(2007, 12, 31) + Using zip As ZipFile = ZipFile.Read(ZipFileToRead) + Dim EntriesToRemove As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + EntriesToRemove.Add(e) + End If + Next + + ' actually remove the doomed entries. + Dim zombie As ZipEntry + For Each zombie In EntriesToRemove + zip.RemoveEntry(zombie) + Next + zip.Comment = String.Format("This zip archive was updated at {0}.", DateTime.Now.ToString("G")) + 'save as a different name + zip.Save("Archive-Updated.zip") + End Using + + + + + The ZipEntry to remove from the zip. + + + + + + + + Removes the ZipEntry with the given filename from the zip archive. + + + + + After calling RemoveEntry, the application must call Save to + make the changes permanent. + + + + + + Thrown if the ZipFile is not updatable. + + + + Thrown if a ZipEntry with the specified filename does not exist in + the ZipFile. + + + + + This example shows one way to remove an entry with a given filename from + an existing zip archive. + + + String zipFileToRead= "PackedDocuments.zip"; + string candidate = "DatedMaterial.xps"; + using (ZipFile zip = ZipFile.Read(zipFileToRead)) + { + if (zip.EntryFilenames.Contains(candidate)) + { + zip.RemoveEntry(candidate); + zip.Comment= String.Format("The file '{0}' has been removed from this archive.", + Candidate); + zip.Save(); + } + } + + + Dim zipFileToRead As String = "PackedDocuments.zip" + Dim candidate As String = "DatedMaterial.xps" + Using zip As ZipFile = ZipFile.Read(zipFileToRead) + If zip.EntryFilenames.Contains(candidate) Then + zip.RemoveEntry(candidate) + zip.Comment = String.Format("The file '{0}' has been removed from this archive.", Candidate) + zip.Save + End If + End Using + + + + + The name of the file, including any directory path, to remove from the zip. + The filename match is not case-sensitive by default; you can use the + CaseSensitiveRetrieval property to change this behavior. The + pathname can use forward-slashes or backward slashes. + + + + + + Closes the read and write streams associated + to the ZipFile, if necessary. + + + + The Dispose() method is generally employed implicitly, via a using(..) {..} + statement. (Using...End Using in VB) If you do not employ a using + statement, insure that your application calls Dispose() explicitly. For + example, in a Powershell application, or an application that uses the COM + interop interface, you must call Dispose() explicitly. + + + + This example extracts an entry selected by name, from the Zip file to the + Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + foreach (ZipEntry e in zip) + { + if (WantThisEntry(e.FileName)) + zip.Extract(e.FileName, Console.OpenStandardOutput()); + } + } // Dispose() is called implicitly here. + + + + Using zip As ZipFile = ZipFile.Read(zipfile) + Dim e As ZipEntry + For Each e In zip + If WantThisEntry(e.FileName) Then + zip.Extract(e.FileName, Console.OpenStandardOutput()) + End If + Next + End Using ' Dispose is implicity called here + + + + + + Disposes any managed resources, if the flag is set, then marks the + instance disposed. This method is typically not called explicitly from + application code. + + + + Applications should call the no-arg Dispose method. + + + + indicates whether the method should dispose streams or not. + + + + + Default size of the buffer used for IO. + + + + + An event handler invoked when a Save() starts, before and after each + entry has been written to the archive, when a Save() completes, and + during other Save events. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + SaveProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Saving_Started + Fired when ZipFile.Save() begins. + + + + + ZipProgressEventType.Saving_BeforeSaveEntry + + Fired within ZipFile.Save(), just before writing data for each + particular entry. + + + + + ZipProgressEventType.Saving_AfterSaveEntry + + Fired within ZipFile.Save(), just after having finished writing data + for each particular entry. + + + + + ZipProgressEventType.Saving_Completed + Fired when ZipFile.Save() has completed. + + + + + ZipProgressEventType.Saving_AfterSaveTempArchive + + Fired after the temporary file has been created. This happens only + when saving to a disk file. This event will not be invoked when + saving to a stream. + + + + + ZipProgressEventType.Saving_BeforeRenameTempArchive + + Fired just before renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterRenameTempArchive + + Fired just after renaming the temporary file to the permanent + location. This happens only when saving to a disk file. This event + will not be invoked when saving to a stream. + + + + + ZipProgressEventType.Saving_AfterCompileSelfExtractor + + Fired after a self-extracting archive has finished compiling. This + EventType is used only within SaveSelfExtractor(). + + + + + ZipProgressEventType.Saving_BytesRead + + Set during the save of a particular entry, to update progress of the + Save(). When this EventType is set, the BytesTransferred is the + number of bytes that have been read from the source stream. The + TotalBytesToTransfer is the number of bytes in the uncompressed + file. + + + + + + + + + This example uses an anonymous method to handle the + SaveProgress event, by updating a progress bar. + + + progressBar1.Value = 0; + progressBar1.Max = listbox1.Items.Count; + using (ZipFile zip = new ZipFile()) + { + // listbox1 contains a list of filenames + zip.AddFiles(listbox1.Items); + + // do the progress bar: + zip.SaveProgress += (sender, e) => { + if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) { + progressBar1.PerformStep(); + } + }; + + zip.Save(fs); + } + + + + + This example uses a named method as the + SaveProgress event handler, to update the user, in a + console-based application. + + + static bool justHadByteUpdate= false; + public static void SaveProgress(object sender, SaveProgressEventArgs e) + { + if (e.EventType == ZipProgressEventType.Saving_Started) + Console.WriteLine("Saving: {0}", e.ArchiveName); + + else if (e.EventType == ZipProgressEventType.Saving_Completed) + { + justHadByteUpdate= false; + Console.WriteLine(); + Console.WriteLine("Done: {0}", e.ArchiveName); + } + + else if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine(" Writing: {0} ({1}/{2})", + e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal); + justHadByteUpdate= false; + } + + else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate= true; + } + } + + public static ZipUp(string targetZip, string directory) + { + using (var zip = new ZipFile()) { + zip.SaveProgress += SaveProgress; + zip.AddDirectory(directory); + zip.Save(targetZip); + } + } + + + + + Public Sub ZipUp(ByVal targetZip As String, ByVal directory As String) + Using zip As ZipFile = New ZipFile + AddHandler zip.SaveProgress, AddressOf MySaveProgress + zip.AddDirectory(directory) + zip.Save(targetZip) + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MySaveProgress(ByVal sender As Object, ByVal e As SaveProgressEventArgs) + If (e.EventType Is ZipProgressEventType.Saving_Started) Then + Console.WriteLine("Saving: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_Completed) Then + justHadByteUpdate = False + Console.WriteLine + Console.WriteLine("Done: {0}", e.ArchiveName) + + ElseIf (e.EventType Is ZipProgressEventType.Saving_BeforeWriteEntry) Then + If justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine(" Writing: {0} ({1}/{2})", e.CurrentEntry.FileName, e.EntriesSaved, e.EntriesTotal) + justHadByteUpdate = False + + ElseIf (e.EventType Is ZipProgressEventType.Saving_EntryBytesRead) Then + If justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, _ + e.TotalBytesToTransfer, _ + (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + justHadByteUpdate = True + End If + End Sub + + + + + + This is a more complete example of using the SaveProgress + events in a Windows Forms application, with a + Thread object. + + + delegate void SaveEntryProgress(SaveProgressEventArgs e); + delegate void ButtonClick(object sender, EventArgs e); + + public class WorkerOptions + { + public string ZipName; + public string Folder; + public string Encoding; + public string Comment; + public int ZipFlavor; + public Zip64Option Zip64; + } + + private int _progress2MaxFactor; + private bool _saveCanceled; + private long _totalBytesBeforeCompress; + private long _totalBytesAfterCompress; + private Thread _workerThread; + + + private void btnZipup_Click(object sender, EventArgs e) + { + KickoffZipup(); + } + + private void btnCancel_Click(object sender, EventArgs e) + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new ButtonClick(this.btnCancel_Click), new object[] { sender, e }); + } + else + { + _saveCanceled = true; + lblStatus.Text = "Canceled..."; + ResetState(); + } + } + + private void KickoffZipup() + { + _folderName = tbDirName.Text; + + if (_folderName == null || _folderName == "") return; + if (this.tbZipName.Text == null || this.tbZipName.Text == "") return; + + // check for existence of the zip file: + if (System.IO.File.Exists(this.tbZipName.Text)) + { + var dlgResult = MessageBox.Show(String.Format("The file you have specified ({0}) already exists." + + " Do you want to overwrite this file?", this.tbZipName.Text), + "Confirmation is Required", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlgResult != DialogResult.Yes) return; + System.IO.File.Delete(this.tbZipName.Text); + } + + _saveCanceled = false; + _nFilesCompleted = 0; + _totalBytesAfterCompress = 0; + _totalBytesBeforeCompress = 0; + this.btnOk.Enabled = false; + this.btnOk.Text = "Zipping..."; + this.btnCancel.Enabled = true; + lblStatus.Text = "Zipping..."; + + var options = new WorkerOptions + { + ZipName = this.tbZipName.Text, + Folder = _folderName, + Encoding = "ibm437" + }; + + if (this.comboBox1.SelectedIndex != 0) + { + options.Encoding = this.comboBox1.SelectedItem.ToString(); + } + + if (this.radioFlavorSfxCmd.Checked) + options.ZipFlavor = 2; + else if (this.radioFlavorSfxGui.Checked) + options.ZipFlavor = 1; + else options.ZipFlavor = 0; + + if (this.radioZip64AsNecessary.Checked) + options.Zip64 = Zip64Option.AsNecessary; + else if (this.radioZip64Always.Checked) + options.Zip64 = Zip64Option.Always; + else options.Zip64 = Zip64Option.Never; + + options.Comment = String.Format("Encoding:{0} || Flavor:{1} || ZIP64:{2}\r\nCreated at {3} || {4}\r\n", + options.Encoding, + FlavorToString(options.ZipFlavor), + options.Zip64.ToString(), + System.DateTime.Now.ToString("yyyy-MMM-dd HH:mm:ss"), + this.Text); + + if (this.tbComment.Text != TB_COMMENT_NOTE) + options.Comment += this.tbComment.Text; + + _workerThread = new Thread(this.DoSave); + _workerThread.Name = "Zip Saver thread"; + _workerThread.Start(options); + this.Cursor = Cursors.WaitCursor; + } + + + private void DoSave(Object p) + { + WorkerOptions options = p as WorkerOptions; + try + { + using (var zip1 = new ZipFile()) + { + zip1.ProvisionalAlternateEncoding = System.Text.Encoding.GetEncoding(options.Encoding); + zip1.Comment = options.Comment; + zip1.AddDirectory(options.Folder); + _entriesToZip = zip1.EntryFileNames.Count; + SetProgressBars(); + zip1.SaveProgress += this.zip1_SaveProgress; + + zip1.UseZip64WhenSaving = options.Zip64; + + if (options.ZipFlavor == 1) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.WinFormsApplication); + else if (options.ZipFlavor == 2) + zip1.SaveSelfExtractor(options.ZipName, SelfExtractorFlavor.ConsoleApplication); + else + zip1.Save(options.ZipName); + } + } + catch (System.Exception exc1) + { + MessageBox.Show(String.Format("Exception while zipping: {0}", exc1.Message)); + btnCancel_Click(null, null); + } + } + + + + void zip1_SaveProgress(object sender, SaveProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Saving_AfterWriteEntry: + StepArchiveProgress(e); + break; + case ZipProgressEventType.Saving_EntryBytesRead: + StepEntryProgress(e); + break; + case ZipProgressEventType.Saving_Completed: + SaveCompleted(); + break; + case ZipProgressEventType.Saving_AfterSaveTempArchive: + // this event only occurs when saving an SFX file + TempArchiveSaved(); + break; + } + if (_saveCanceled) + e.Cancel = true; + } + + + + private void StepArchiveProgress(SaveProgressEventArgs e) + { + if (this.progressBar1.InvokeRequired) + { + this.progressBar1.Invoke(new SaveEntryProgress(this.StepArchiveProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + _nFilesCompleted++; + this.progressBar1.PerformStep(); + _totalBytesAfterCompress += e.CurrentEntry.CompressedSize; + _totalBytesBeforeCompress += e.CurrentEntry.UncompressedSize; + + // reset the progress bar for the entry: + this.progressBar2.Value = this.progressBar2.Maximum = 1; + + this.Update(); + } + } + } + + + private void StepEntryProgress(SaveProgressEventArgs e) + { + if (this.progressBar2.InvokeRequired) + { + this.progressBar2.Invoke(new SaveEntryProgress(this.StepEntryProgress), new object[] { e }); + } + else + { + if (!_saveCanceled) + { + if (this.progressBar2.Maximum == 1) + { + // reset + Int64 max = e.TotalBytesToTransfer; + _progress2MaxFactor = 0; + while (max > System.Int32.MaxValue) + { + max /= 2; + _progress2MaxFactor++; + } + this.progressBar2.Maximum = (int)max; + lblStatus.Text = String.Format("{0} of {1} files...({2})", + _nFilesCompleted + 1, _entriesToZip, e.CurrentEntry.FileName); + } + + int xferred = e.BytesTransferred >> _progress2MaxFactor; + + this.progressBar2.Value = (xferred >= this.progressBar2.Maximum) + ? this.progressBar2.Maximum + : xferred; + + this.Update(); + } + } + } + + private void SaveCompleted() + { + if (this.lblStatus.InvokeRequired) + { + this.lblStatus.Invoke(new MethodInvoker(this.SaveCompleted)); + } + else + { + lblStatus.Text = String.Format("Done, Compressed {0} files, {1:N0}% of original.", + _nFilesCompleted, (100.00 * _totalBytesAfterCompress) / _totalBytesBeforeCompress); + ResetState(); + } + } + + private void ResetState() + { + this.btnCancel.Enabled = false; + this.btnOk.Enabled = true; + this.btnOk.Text = "Zip it!"; + this.progressBar1.Value = 0; + this.progressBar2.Value = 0; + this.Cursor = Cursors.Default; + if (!_workerThread.IsAlive) + _workerThread.Join(); + } + + + + + + + + + + + An event handler invoked before, during, and after the reading of a zip archive. + + + + + Depending on the particular event being signaled, different properties on the + parameter are set. The following table + summarizes the available EventTypes and the conditions under which this + event handler is invoked with a ReadProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Reading_Started + Fired just as ZipFile.Read() begins. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_Completed + Fired when ZipFile.Read() has completed. Meaningful properties: ArchiveName. + + + + + ZipProgressEventType.Reading_ArchiveBytesRead + Fired while reading, updates the number of bytes read for the entire archive. + Meaningful properties: ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Reading_BeforeReadEntry + Indicates an entry is about to be read from the archive. + Meaningful properties: ArchiveName, EntriesTotal. + + + + + ZipProgressEventType.Reading_AfterReadEntry + Indicates an entry has just been read from the archive. + Meaningful properties: ArchiveName, EntriesTotal, CurrentEntry. + + + + + + + + + + + + + An event handler invoked before, during, and after extraction of + entries in the zip archive. + + + + + Depending on the particular event, different properties on the parameter are set. The following + table summarizes the available EventTypes and the conditions under + which this event handler is invoked with a + ExtractProgressEventArgs with the given EventType. + + + + + value of EntryType + Meaning and conditions + + + + ZipProgressEventType.Extracting_BeforeExtractAll + + Set when ExtractAll() begins. The ArchiveName, Overwrite, and + ExtractLocation properties are meaningful. + + + + ZipProgressEventType.Extracting_AfterExtractAll + + Set when ExtractAll() has completed. The ArchiveName, Overwrite, + and ExtractLocation properties are meaningful. + + + + + ZipProgressEventType.Extracting_BeforeExtractEntry + + Set when an Extract() on an entry in the ZipFile has begun. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_AfterExtractEntry + + Set when an Extract() on an entry in the ZipFile has completed. + Properties that are meaningful: ArchiveName, EntriesTotal, + CurrentEntry, Overwrite, ExtractLocation, EntriesExtracted. + + + + + ZipProgressEventType.Extracting_EntryBytesWritten + + Set within a call to Extract() on an entry in the ZipFile, as data + is extracted for the entry. Properties that are meaningful: + ArchiveName, CurrentEntry, BytesTransferred, TotalBytesToTransfer. + + + + + ZipProgressEventType.Extracting_ExtractEntryWouldOverwrite + + Set within a call to Extract() on an entry in the ZipFile, when the + extraction would overwrite an existing file. This event type is used + only when ExtractExistingFileAction on the ZipFile or + ZipEntry is set to InvokeExtractProgressEvent. + + + + + + + + + + private static bool justHadByteUpdate = false; + public static void ExtractProgress(object sender, ExtractProgressEventArgs e) + { + if(e.EventType == ZipProgressEventType.Extracting_EntryBytesWritten) + { + if (justHadByteUpdate) + Console.SetCursorPosition(0, Console.CursorTop); + + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, + e.BytesTransferred / (0.01 * e.TotalBytesToTransfer )); + justHadByteUpdate = true; + } + else if(e.EventType == ZipProgressEventType.Extracting_BeforeExtractEntry) + { + if (justHadByteUpdate) + Console.WriteLine(); + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName); + justHadByteUpdate= false; + } + } + + public static ExtractZip(string zipToExtract, string directory) + { + string TargetDirectory= "extract"; + using (var zip = ZipFile.Read(zipToExtract)) { + zip.ExtractProgress += ExtractProgress; + foreach (var e in zip1) + { + e.Extract(TargetDirectory, true); + } + } + } + + + + Public Shared Sub Main(ByVal args As String()) + Dim ZipToUnpack As String = "C1P3SML.zip" + Dim TargetDir As String = "ExtractTest_Extract" + Console.WriteLine("Extracting file {0} to {1}", ZipToUnpack, TargetDir) + Using zip1 As ZipFile = ZipFile.Read(ZipToUnpack) + AddHandler zip1.ExtractProgress, AddressOf MyExtractProgress + Dim e As ZipEntry + For Each e In zip1 + e.Extract(TargetDir, True) + Next + End Using + End Sub + + Private Shared justHadByteUpdate As Boolean = False + + Public Shared Sub MyExtractProgress(ByVal sender As Object, ByVal e As ExtractProgressEventArgs) + If (e.EventType = ZipProgressEventType.Extracting_EntryBytesWritten) Then + If ExtractTest.justHadByteUpdate Then + Console.SetCursorPosition(0, Console.CursorTop) + End If + Console.Write(" {0}/{1} ({2:N0}%)", e.BytesTransferred, e.TotalBytesToTransfer, (CDbl(e.BytesTransferred) / (0.01 * e.TotalBytesToTransfer))) + ExtractTest.justHadByteUpdate = True + ElseIf (e.EventType = ZipProgressEventType.Extracting_BeforeExtractEntry) Then + If ExtractTest.justHadByteUpdate Then + Console.WriteLine + End If + Console.WriteLine("Extracting: {0}", e.CurrentEntry.FileName) + ExtractTest.justHadByteUpdate = False + End If + End Sub + + + + + + + + + + An event handler invoked before, during, and after Adding entries to a zip archive. + + + + Adding a large number of entries to a zip file can take a long + time. For example, when calling on a + directory that contains 50,000 files, it could take 3 minutes or so. + This event handler allws an application to track the progress of the Add + operation, and to optionally cancel a lengthy Add operation. + + + + + + int _numEntriesToAdd= 0; + int _numEntriesAdded= 0; + void AddProgressHandler(object sender, AddProgressEventArgs e) + { + switch (e.EventType) + { + case ZipProgressEventType.Adding_Started: + Console.WriteLine("Adding files to the zip..."); + break; + case ZipProgressEventType.Adding_AfterAddEntry: + _numEntriesAdded++; + Console.WriteLine(String.Format("Adding file {0}/{1} :: {2}", + _numEntriesAdded, _numEntriesToAdd, e.CurrentEntry.FileName)); + break; + case ZipProgressEventType.Adding_Completed: + Console.WriteLine("Added all files"); + break; + } + } + + void CreateTheZip() + { + using (ZipFile zip = new ZipFile()) + { + zip.AddProgress += AddProgressHandler; + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)); + zip.Save(ZipFileToCreate); + } + } + + + + + + Private Sub AddProgressHandler(ByVal sender As Object, ByVal e As AddProgressEventArgs) + Select Case e.EventType + Case ZipProgressEventType.Adding_Started + Console.WriteLine("Adding files to the zip...") + Exit Select + Case ZipProgressEventType.Adding_AfterAddEntry + Console.WriteLine(String.Format("Adding file {0}", e.CurrentEntry.FileName)) + Exit Select + Case ZipProgressEventType.Adding_Completed + Console.WriteLine("Added all files") + Exit Select + End Select + End Sub + + Sub CreateTheZip() + Using zip as ZipFile = New ZipFile + AddHandler zip.AddProgress, AddressOf AddProgressHandler + zip.AddDirectory(System.IO.Path.GetFileName(DirToZip)) + zip.Save(ZipFileToCreate); + End Using + End Sub + + + + + + + + + + + + An event that is raised when an error occurs during open or read of files + while saving a zip archive. + + + + + Errors can occur as a file is being saved to the zip archive. For + example, the File.Open may fail, or a File.Read may fail, because of + lock conflicts or other reasons. If you add a handler to this event, + you can handle such errors in your own code. If you don't add a + handler, the library will throw an exception if it encounters an I/O + error during a call to Save(). + + + + Setting a handler implicitly sets to + ZipErrorAction.InvokeErrorEvent. + + + + The handler you add applies to all items that are + subsequently added to the ZipFile instance. If you set this + property after you have added items to the ZipFile, but before you + have called Save(), errors that occur while saving those items + will not cause the error handler to be invoked. + + + + If you want to handle any errors that occur with any entry in the zip + file using the same error handler, then add your error handler once, + before adding any entries to the zip archive. + + + + In the error handler method, you need to set the property on the + ZipErrorEventArgs.CurrentEntry. This communicates back to + DotNetZip what you would like to do with this particular error. Within + an error handler, if you set the ZipEntry.ZipErrorAction property + on the ZipEntry to ZipErrorAction.InvokeErrorEvent or if + you don't set it at all, the library will throw the exception. (It is the + same as if you had set the ZipEntry.ZipErrorAction property on the + ZipEntry to ZipErrorAction.Throw.) If you set the + ZipErrorEventArgs.Cancel to true, the entire Save() will be + canceled. + + + + In the case that you use ZipErrorAction.Skip, implying that + you want to skip the entry for which there's been an error, DotNetZip + tries to seek backwards in the output stream, and truncate all bytes + written on behalf of that particular entry. This works only if the + output stream is seekable. It will not work, for example, when using + ASPNET's Response.OutputStream. + + + + + + + This example shows how to use an event handler to handle + errors during save of the zip file. + + + public static void MyZipError(object sender, ZipErrorEventArgs e) + { + Console.WriteLine("Error saving {0}...", e.FileName); + Console.WriteLine(" Exception: {0}", e.exception); + ZipEntry entry = e.CurrentEntry; + string response = null; + // Ask the user whether he wants to skip this error or not + do + { + Console.Write("Retry, Skip, Throw, or Cancel ? (R/S/T/C) "); + response = Console.ReadLine(); + Console.WriteLine(); + + } while (response != null && + response[0]!='S' && response[0]!='s' && + response[0]!='R' && response[0]!='r' && + response[0]!='T' && response[0]!='t' && + response[0]!='C' && response[0]!='c'); + + e.Cancel = (response[0]=='C' || response[0]=='c'); + + if (response[0]=='S' || response[0]=='s') + entry.ZipErrorAction = ZipErrorAction.Skip; + else if (response[0]=='R' || response[0]=='r') + entry.ZipErrorAction = ZipErrorAction.Retry; + else if (response[0]=='T' || response[0]=='t') + entry.ZipErrorAction = ZipErrorAction.Throw; + } + + public void SaveTheFile() + { + string directoryToZip = "fodder"; + string directoryInArchive = "files"; + string zipFileToCreate = "Archive.zip"; + using (var zip = new ZipFile()) + { + // set the event handler before adding any entries + zip.ZipError += MyZipError; + zip.AddDirectory(directoryToZip, directoryInArchive); + zip.Save(zipFileToCreate); + } + } + + + + Private Sub MyZipError(ByVal sender As Object, ByVal e As Ionic.Zip.ZipErrorEventArgs) + ' At this point, the application could prompt the user for an action to take. + ' But in this case, this application will simply automatically skip the file, in case of error. + Console.WriteLine("Zip Error, entry {0}", e.CurrentEntry.FileName) + Console.WriteLine(" Exception: {0}", e.exception) + ' set the desired ZipErrorAction on the CurrentEntry to communicate that to DotNetZip + e.CurrentEntry.ZipErrorAction = Zip.ZipErrorAction.Skip + End Sub + + Public Sub SaveTheFile() + Dim directoryToZip As String = "fodder" + Dim directoryInArchive As String = "files" + Dim zipFileToCreate as String = "Archive.zip" + Using zipArchive As ZipFile = New ZipFile + ' set the event handler before adding any entries + AddHandler zipArchive.ZipError, AddressOf MyZipError + zipArchive.AddDirectory(directoryToZip, directoryInArchive) + zipArchive.Save(zipFileToCreate) + End Using + End Sub + + + + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem. The path can be relative or fully-qualified. + + + + + This method will extract all entries in the ZipFile to the + specified path. + + + + If an extraction of a file from the zip archive would overwrite an + existing file in the filesystem, the action taken is dictated by the + ExtractExistingFile property, which overrides any setting you may have + made on individual ZipEntry instances. By default, if you have not + set that property on the ZipFile instance, the entry will not + be extracted, the existing file will not be overwritten and an + exception will be thrown. To change this, set the property, or use the + overload that allows you to + specify an ExtractExistingFileAction parameter. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use one of the ZipEntry.Extract methods. + + + + This method will send verbose output messages to the , if it is set on the ZipFile + instance. + + + + You may wish to take advantage of the ExtractProgress event. + + + + About timestamps: When extracting a file entry from a zip archive, the + extracted file gets the last modified time of the entry as stored in + the archive. The archive may also store extended file timestamp + information, including last accessed and created times. If these are + present in the ZipEntry, then the extracted file will also get + these times. + + + + A Directory entry is somewhat different. It will get the times as + described for a file entry, but, if there are file entries in the zip + archive that, when extracted, appear in the just-created directory, + then when those file entries are extracted, the last modified and last + accessed times of the directory will change, as a side effect. The + result is that after an extraction of a directory and a number of + files within the directory, the last modified and last accessed + timestamps on the directory will reflect the time that the last file + was extracted into the directory, rather than the time stored in the + zip archive for the directory. + + + + To compensate, when extracting an archive with ExtractAll, + DotNetZip will extract all the file and directory entries as described + above, but it will then make a second pass on the directories, and + reset the times on the directories to reflect what is stored in the + zip archive. + + + + This compensation is performed only within the context of an + ExtractAll. If you call ZipEntry.Extract on a directory + entry, the timestamps on directory in the filesystem will reflect the + times stored in the zip. If you then call ZipEntry.Extract on + a file entry, which is extracted into the directory, the timestamps on + the directory will be updated to the current time. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. The extraction will overwrite any + existing files silently. + + + String TargetDirectory= "unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently; + zip.ExtractAll(TargetDirectory); + } + + + + Dim TargetDirectory As String = "unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractExistingFile= ExtractExistingFileAction.OverwriteSilently + zip.ExtractAll(TargetDirectory) + End Using + + + + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + + + Extracts all of the items in the zip archive, to the specified path in the + filesystem, using the specified behavior when extraction would overwrite an + existing file. + + + + + + This method will extract all entries in the ZipFile to the specified + path. For an extraction that would overwrite an existing file, the behavior + is dictated by , which overrides any + setting you may have made on individual ZipEntry instances. + + + + The action to take when an extract would overwrite an existing file + applies to all entries. If you want to set this on a per-entry basis, + then you must use or one of the similar methods. + + + + Calling this method is equivalent to setting the property and then calling . + + + + This method will send verbose output messages to the + , if it is set on the ZipFile instance. + + + + + This example extracts all the entries in a zip archive file, to the + specified target directory. It does not overwrite any existing files. + + String TargetDirectory= "c:\\unpack"; + using(ZipFile zip= ZipFile.Read(ZipFileToExtract)) + { + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite); + } + + + + Dim TargetDirectory As String = "c:\unpack" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + zip.ExtractAll(TargetDirectory, ExtractExistingFileAction.DontOverwrite) + End Using + + + + + The path to which the contents of the zipfile will be extracted. + The path can be relative or fully-qualified. + + + + The action to take if extraction would overwrite an existing file. + + + + + + Reads a zip file archive and returns the instance. + + + + + The stream is read using the default System.Text.Encoding, which is the + IBM437 codepage. + + + + + Thrown if the ZipFile cannot be read. The implementation of this method + relies on System.IO.File.OpenRead, which can throw a variety of exceptions, + including specific exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so on. + + + + The name of the zip archive to open. This can be a fully-qualified or relative + pathname. + + + . + + The instance read from the zip archive. + + + + + Reads a zip file archive from the named filesystem file using the + specified options. + + + + + This version of the Read() method allows the caller to pass + in a TextWriter an Encoding, via an instance of the + ReadOptions class. The ZipFile is read in using the + specified encoding for entries where UTF-8 encoding is not + explicitly specified. + + + + + + + This example shows how to read a zip file using the Big-5 Chinese + code page (950), and extract each entry in the zip file, while + sending status messages out to the Console. + + + + For this code to work as intended, the zipfile must have been + created using the big5 code page (CP950). This is typical, for + example, when using WinRar on a machine with CP950 set as the + default code page. In that case, the names of entries within the + Zip archive will be stored in that code page, and reading the zip + archive must be done using that code page. If the application did + not use the correct code page in ZipFile.Read(), then names of + entries within the zip archive would not be correctly retrieved. + + + + string zipToExtract = "MyArchive.zip"; + string extractDirectory = "extract"; + var options = new ReadOptions + { + StatusMessageWriter = System.Console.Out, + Encoding = System.Text.Encoding.GetEncoding(950) + }; + using (ZipFile zip = ZipFile.Read(zipToExtract, options)) + { + foreach (ZipEntry e in zip) + { + e.Extract(extractDirectory); + } + } + + + + + Dim zipToExtract as String = "MyArchive.zip" + Dim extractDirectory as String = "extract" + Dim options as New ReadOptions + options.Encoding = System.Text.Encoding.GetEncoding(950) + options.StatusMessageWriter = System.Console.Out + Using zip As ZipFile = ZipFile.Read(zipToExtract, options) + Dim e As ZipEntry + For Each e In zip + e.Extract(extractDirectory) + Next + End Using + + + + + + + + This example shows how to read a zip file using the default + code page, to remove entries that have a modified date before a given threshold, + sending status messages out to a StringWriter. + + + + var options = new ReadOptions + { + StatusMessageWriter = new System.IO.StringWriter() + }; + using (ZipFile zip = ZipFile.Read("PackedDocuments.zip", options)) + { + var Threshold = new DateTime(2007,7,4); + // We cannot remove the entry from the list, within the context of + // an enumeration of said list. + // So we add the doomed entry to a list to be removed later. + // pass 1: mark the entries for removal + var MarkedEntries = new System.Collections.Generic.List<ZipEntry>(); + foreach (ZipEntry e in zip) + { + if (e.LastModified < Threshold) + MarkedEntries.Add(e); + } + // pass 2: actually remove the entry. + foreach (ZipEntry zombie in MarkedEntries) + zip.RemoveEntry(zombie); + zip.Comment = "This archive has been updated."; + zip.Save(); + } + // can now use contents of sw, eg store in an audit log + + + + Dim options as New ReadOptions + options.StatusMessageWriter = New System.IO.StringWriter + Using zip As ZipFile = ZipFile.Read("PackedDocuments.zip", options) + Dim Threshold As New DateTime(2007, 7, 4) + ' We cannot remove the entry from the list, within the context of + ' an enumeration of said list. + ' So we add the doomed entry to a list to be removed later. + ' pass 1: mark the entries for removal + Dim MarkedEntries As New System.Collections.Generic.List(Of ZipEntry) + Dim e As ZipEntry + For Each e In zip + If (e.LastModified < Threshold) Then + MarkedEntries.Add(e) + End If + Next + ' pass 2: actually remove the entry. + Dim zombie As ZipEntry + For Each zombie In MarkedEntries + zip.RemoveEntry(zombie) + Next + zip.Comment = "This archive has been updated." + zip.Save + End Using + ' can now use contents of sw, eg store in an audit log + + + + + Thrown if the zipfile cannot be read. The implementation of + this method relies on System.IO.File.OpenRead, which + can throw a variety of exceptions, including specific + exceptions if a file is not found, an unauthorized access + exception, exceptions for poorly formatted filenames, and so + on. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + The set of options to use when reading the zip file. + + + The ZipFile instance read from the zip archive. + + + + + + + Reads a zip file archive using the specified text encoding, the specified + TextWriter for status messages, and the specified ReadProgress event handler, + and returns the instance. + + + + The name of the zip archive to open. + This can be a fully-qualified or relative pathname. + + + + An event handler for Read operations. + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + The instance read from the zip archive. + + + + + Reads a zip archive from a stream. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Using this overload, the stream is read using the default + System.Text.Encoding, which is the IBM437 + codepage. If you want to specify the encoding to use when + reading the zipfile content, see + ZipFile.Read(Stream, ReadOptions). This + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + + + + This example shows how to Read zip content from a stream, and + extract one entry into a different stream. In this example, + the filename "NameOfEntryInArchive.doc", refers only to the + name of the entry within the zip archive. A file by that + name is not created in the filesystem. The I/O is done + strictly with the given streams. + + + + using (ZipFile zip = ZipFile.Read(InputStream)) + { + zip.Extract("NameOfEntryInArchive.doc", OutputStream); + } + + + + Using zip as ZipFile = ZipFile.Read(InputStream) + zip.Extract("NameOfEntryInArchive.doc", OutputStream) + End Using + + + + the stream containing the zip data. + + The ZipFile instance read from the stream + + + + + Reads a zip file archive from the given stream using the + specified options. + + + + + + When reading from a file, it's probably easier to just use + ZipFile.Read(String, ReadOptions). This + overload is useful when when the zip archive content is + available from an already-open stream. The stream must be + open and readable and seekable when calling this method. The + stream is left open when the reading is completed. + + + + Reading of zip content begins at the current position in the + stream. This means if you have a stream that concatenates + regular data and zip data, if you position the open, readable + stream at the start of the zip data, you will be able to read + the zip archive using this constructor, or any of the ZipFile + constructors that accept a as + input. Some examples of where this might be useful: the zip + content is concatenated at the end of a regular EXE file, as + some self-extracting archives do. (Note: SFX files produced + by DotNetZip do not work this way; they can be read as normal + ZIP files). Another example might be a stream being read from + a database, where the zip content is embedded within an + aggregate stream of data. + + + + the stream containing the zip data. + + + The set of options to use when reading the zip file. + + + + Thrown if the zip archive cannot be read. + + + The ZipFile instance read from the stream. + + + + + + + Reads a zip archive from a stream, using the specified text Encoding, the + specified TextWriter for status messages, + and the specified ReadProgress event handler. + + + + + Reading of zip content begins at the current position in the stream. This + means if you have a stream that concatenates regular data and zip data, if + you position the open, readable stream at the start of the zip data, you + will be able to read the zip archive using this constructor, or any of the + ZipFile constructors that accept a as + input. Some examples of where this might be useful: the zip content is + concatenated at the end of a regular EXE file, as some self-extracting + archives do. (Note: SFX files produced by DotNetZip do not work this + way). Another example might be a stream being read from a database, where + the zip content is embedded within an aggregate stream of data. + + + + the stream containing the zip data. + + + The System.IO.TextWriter to which verbose status messages are written + during operations on the ZipFile. For example, in a console + application, System.Console.Out works, and will get a message for each entry + added to the ZipFile. If the TextWriter is null, no verbose messages + are written. + + + + The text encoding to use when reading entries that do not have the UTF-8 + encoding bit set. Be careful specifying the encoding. If the value you use + here is not the same as the Encoding used when the zip archive was created + (possibly by a different archiver) you will get unexpected results and + possibly exceptions. See the + property for more information. + + + + An event handler for Read operations. + + + an instance of ZipFile + + + + Checks the given file to see if it appears to be a valid zip file. + + + + + Calling this method is equivalent to calling with the testExtract parameter set to false. + + + + The file to check. + true if the file appears to be a zip file. + + + + Checks a file to see if it is a valid zip file. + + + + + This method opens the specified zip file, reads in the zip archive, + verifying the ZIP metadata as it reads. + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a + corrupt file, the the method returns false. This method also returns + false for a file that does not exist. + + + + If is true, as part of its check, this + method reads in the content for each entry, expands it, and checks CRCs. + This provides an additional check beyond verifying the zip header and + directory data. + + + + If is true, and if any of the zip entries + are protected with a password, this method will return false. If you want + to verify a ZipFile that has entries which are protected with a + password, you will need to do that manually. + + + + + The zip file to check. + true if the caller wants to extract each entry. + true if the file contains a valid zip file. + + + + Checks a stream to see if it contains a valid zip archive. + + + + + This method reads the zip archive contained in the specified stream, verifying + the ZIP metadata as it reads. If testExtract is true, this method also extracts + each entry in the archive, dumping all the bits into . + + + + If everything succeeds, then the method returns true. If anything fails - + for example if an incorrect signature or CRC is found, indicating a corrupt + file, the the method returns false. This method also returns false for a + file that does not exist. + + + + If testExtract is true, this method reads in the content for each + entry, expands it, and checks CRCs. This provides an additional check + beyond verifying the zip header data. + + + + If testExtract is true, and if any of the zip entries are protected + with a password, this method will return false. If you want to verify a + ZipFile that has entries which are protected with a password, you will need + to do that manually. + + + + + + The stream to check. + true if the caller wants to extract each entry. + true if the stream contains a valid zip archive. + + + + Delete file with retry on UnauthorizedAccessException. + + + + + When calling File.Delete() on a file that has been "recently" + created, the call sometimes fails with + UnauthorizedAccessException. This method simply retries the Delete 3 + times with a sleep between tries. + + + + the name of the file to be deleted + + + + Saves the Zip archive to a file, specified by the Name property of the + ZipFile. + + + + + The ZipFile instance is written to storage, typically a zip file + in a filesystem, only when the caller calls Save. In the typical + case, the Save operation writes the zip content to a temporary file, and + then renames the temporary file to the desired name. If necessary, this + method will delete a pre-existing file before the rename. + + + + The property is specified either explicitly, + or implicitly using one of the parameterized ZipFile constructors. For + COM Automation clients, the Name property must be set explicitly, + because COM Automation clients cannot call parameterized constructors. + + + + When using a filesystem file for the Zip output, it is possible to call + Save multiple times on the ZipFile instance. With each + call the zip content is re-written to the same output file. + + + + Data for entries that have been added to the ZipFile instance is + written to the output when the Save method is called. This means + that the input streams for those entries must be available at the time + the application calls Save. If, for example, the application + adds entries with AddEntry using a dynamically-allocated + MemoryStream, the memory stream must not have been disposed + before the call to Save. See the property for more discussion of the + availability requirements of the input stream for an entry, and an + approach for providing just-in-time stream lifecycle management. + + + + + + + + Thrown if you haven't specified a location or stream for saving the zip, + either in the constructor or by setting the Name property, or if you try + to save a regular zip archive to a filename with a .exe extension. + + + + Thrown if or is non-zero, and the number + of segments that would be generated for the spanned zip file during the + save operation exceeds 99. If this happens, you need to increase the + segment size. + + + + + + Save the file to a new zipfile, with the given name. + + + + + This method allows the application to explicitly specify the name of the zip + file when saving. Use this when creating a new zip file, or when + updating a zip archive. + + + + An application can also save a zip archive in several places by calling this + method multiple times in succession, with different filenames. + + + + The ZipFile instance is written to storage, typically a zip file in a + filesystem, only when the caller calls Save. The Save operation writes + the zip content to a temporary file, and then renames the temporary file + to the desired name. If necessary, this method will delete a pre-existing file + before the rename. + + + + + + Thrown if you specify a directory for the filename. + + + + The name of the zip archive to save to. Existing files will + be overwritten with great prejudice. + + + + This example shows how to create and Save a zip file. + + using (ZipFile zip = new ZipFile()) + { + zip.AddDirectory(@"c:\reports\January"); + zip.Save("January.zip"); + } + + + + Using zip As New ZipFile() + zip.AddDirectory("c:\reports\January") + zip.Save("January.zip") + End Using + + + + + + This example shows how to update a zip file. + + using (ZipFile zip = ZipFile.Read("ExistingArchive.zip")) + { + zip.AddFile("NewData.csv"); + zip.Save("UpdatedArchive.zip"); + } + + + + Using zip As ZipFile = ZipFile.Read("ExistingArchive.zip") + zip.AddFile("NewData.csv") + zip.Save("UpdatedArchive.zip") + End Using + + + + + + + Save the zip archive to the specified stream. + + + + + The ZipFile instance is written to storage - typically a zip file + in a filesystem, but using this overload, the storage can be anything + accessible via a writable stream - only when the caller calls Save. + + + + Use this method to save the zip content to a stream directly. A common + scenario is an ASP.NET application that dynamically generates a zip file + and allows the browser to download it. The application can call + Save(Response.OutputStream) to write a zipfile directly to the + output stream, without creating a zip file on the disk on the ASP.NET + server. + + + + Be careful when saving a file to a non-seekable stream, including + Response.OutputStream. When DotNetZip writes to a non-seekable + stream, the zip archive is formatted in such a way that may not be + compatible with all zip tools on all platforms. It's a perfectly legal + and compliant zip file, but some people have reported problems opening + files produced this way using the Mac OS archive utility. + + + + + + + This example saves the zipfile content into a MemoryStream, and + then gets the array of bytes from that MemoryStream. + + + using (var zip = new Ionic.Zip.ZipFile()) + { + zip.CompressionLevel= Ionic.Zlib.CompressionLevel.BestCompression; + zip.Password = "VerySecret."; + zip.Encryption = EncryptionAlgorithm.WinZipAes128; + zip.AddFile(sourceFileName); + MemoryStream output = new MemoryStream(); + zip.Save(output); + + byte[] zipbytes = output.ToArray(); + } + + + + + + This example shows a pitfall you should avoid. DO NOT read + from a stream, then try to save to the same stream. DO + NOT DO THIS: + + + + using (var fs = new FileStream(filename, FileMode.Open)) + { + using (var zip = Ionic.Zip.ZipFile.Read(inputStream)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(inputStream); // NO NO NO!! + } + } + + + + Better like this: + + + + using (var zip = Ionic.Zip.ZipFile.Read(filename)) + { + zip.AddEntry("Name1.txt", "this is the content"); + zip.Save(); // YES! + } + + + + + + The System.IO.Stream to write to. It must be + writable. If you created the ZipFile instance by calling + ZipFile.Read(), this stream must not be the same stream + you passed to ZipFile.Read(). + + + + + Adds to the ZipFile a set of files from the current working directory on + disk, that conform to the specified criteria. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. + + + + Specify the criteria in statements of 3 elements: a noun, an operator, and + a value. Consider the string "name != *.doc" . The noun is "name". The + operator is "!=", implying "Not Equal". The value is "*.doc". That + criterion, in English, says "all files with a name that does not end in + the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; "atime", + "mtime", and "ctime" for last access time, last modfied time, and created + time of the file, respectively; "attributes" (or "attrs") for the file + attributes; "size" (or "length") for the file length (uncompressed), and + "type" for the type of object, either a file or a directory. The + "attributes", "name" and "type" nouns both support = and != as operators. + The "size", "atime", "mtime", and "ctime" nouns support = and !=, and + >, >=, <, <= as well. The times are taken to be expressed in + local time. + + + + Specify values for the file attributes as a string with one or more of the + characters H,R,S,A,I,L in any order, implying file attributes of Hidden, + ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint (symbolic + link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as the + format. If you omit the HH:mm:ss portion, it is assumed to be 00:00:00 + (midnight). + + + + The value for a size criterion is expressed in integer quantities of bytes, + kilobytes (use k or kb after the number), megabytes (m or mb), or gigabytes + (g or gb). + + + + The value for a name is a pattern to match against the filename, potentially + including wildcards. The pattern follows CMD.exe glob rules: * implies one + or more of any character, while ? implies one character. If the name + pattern contains any slashes, it is matched to the entire filename, + including the path; otherwise, it is matched against only the filename + without the path. This means a pattern of "*\*.*" matches all files one + directory level deep, while a pattern of "*.*" matches all files in all + directories. + + + + To specify a name pattern that includes spaces, use single quotes around the + pattern. A pattern of "'* *.*'" will match all files that have spaces in + the filename. The full criteria string for that would be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D (implying + a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND or OR. Using a string + like "name = *.txt AND size >= 100k" for the selectionCriteria retrieves + entries whose names end in .txt, and whose uncompressed size is greater than + or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to group + clauses in the boolean logic. Without parenthesis, the precedence of the + criterion atoms is determined by order of appearance. Unlike the C# + language, the AND conjunction does not take precendence over the logical OR. + This is important only in strings that contain 3 or more criterion atoms. + In other words, "name = *.txt and size > 1000 or attributes = H" implies + "((name = *.txt AND size > 1000) OR attributes = H)" while "attributes = + H OR name = *.txt and size > 1000" evaluates to "((attributes = H OR name + = *.txt) AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to retrieve all + entries that were last updated on 2009 February 14, specify a time range + like so:"mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this to + say: all files updated after 12:00am on February 14th, until 12:00am on + February 15th. You can use the same bracketing approach to specify any time + period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no spaces, it is + treated as a pattern to match for the filename. Therefore a string like "*.xls" + will be equivalent to specifying "name = *.xls". + + + + There is no logic in this method that insures that the file inclusion + criteria are internally consistent. For example, it's possible to specify + criteria that says the file must have a size of less than 100 bytes, as well + as a size that is greater than 1000 bytes. Obviously no file will ever + satisfy such criteria, but this method does not detect such logical + inconsistencies. The caller is responsible for insuring the criteria are + sensible. + + + + Using this method, the file selection does not recurse into + subdirectories, and the full path of the selected files is included in the + entries added into the zip archive. If you don't like these behaviors, + see the other overloads of this method. + + + + + This example zips up all *.csv files in the current working directory. + + using (ZipFile zip = new ZipFile()) + { + // To just match on filename wildcards, + // use the shorthand form of the selectionCriteria string. + zip.AddSelectedFiles("*.csv"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + zip.AddSelectedFiles("*.csv") + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + + Adds to the ZipFile a set of files from the disk that conform to the + specified criteria, optionally recursing into subdirectories. + + + + + This method selects files from the the current working directory matching + the specified criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the current working directory. + + + + Using this method, the full path of the selected files is included in the + entries added into the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files in the current working directory, or any + subdirectory, that are larger than 1mb. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", true) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a set of files from a specified directory in the + filesystem, that conform to the specified criteria. + + + + + This method selects files that conform to the specified criteria, from the + the specified directory on disk, and adds them to the ZipFile. The search + does not recurse into subdirectores. + + + + Using this method, the full filesystem path of the files on disk is + reproduced on the entries added to the zip file. If you don't want this + behavior, use one of the other overloads of this method. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + + This example zips up all *.xml files larger than 1mb in the directory + given by "d:\rawdata". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\\rawdata"); + zip.Save(PathToZipArchive); + } + + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.xml and size > 1024kb", "d:\rawdata) + zip.Save(PathToZipArchive) + End Using + + + + The criteria for file selection + + + The name of the directory on the disk from which to select files. + + + + + Adds to the ZipFile a set of files from the specified directory on disk, + that conform to the specified criteria. + + + + + + This method selects files from the the specified disk directory matching + the specified selection criteria, and adds them to the ZipFile. If + recurseDirectories is true, files are also selected from + subdirectories. + + + + The full directory structure in the filesystem is reproduced on the + entries added to the zip archive. If you don't want this behavior, use + one of the overloads of this method that allows the specification of a + directoryInArchive. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + + + This example zips up all *.csv files in the "files" directory, or any + subdirectory, that have been saved since 2009 February 14th. + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile() + ' Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.csv and mtime > 2009-02-14", "files", true) + zip.Save(PathToZipArchive) + End Using + + + + + This example zips up all files in the current working + directory, and all its child directories, except those in + the excludethis subdirectory. + + Using Zip As ZipFile = New ZipFile(zipfile) + Zip.AddSelectedFfiles("name != 'excludethis\*.*'", datapath, True) + Zip.Save() + End Using + + + + The criteria for file selection + + + The filesystem path from which to select files. + + + + If true, the file selection will recurse into subdirectories. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, and using a specified root + path for entries added to the zip archive. + + + + + This method selects files from the specified disk directory matching the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. The search does not recurse + into subdirectories. For details on the syntax for the selectionCriteria + parameter, see . + + + + + + + This example zips up all *.psd files in the "photos" directory that have + been saved since 2009 February 14th, and puts them all in a zip file, + using the directory name of "content" in the zip archive itself. When the + zip archive is unzipped, the folder containing the .psd files will be + named "content". + + + using (ZipFile zip = new ZipFile()) + { + // Use a compound expression in the selectionCriteria string. + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content"); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name = *.psd and mtime > 2009-02-14", "photos", "content") + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + + Adds to the ZipFile a selection of files from the specified directory on + disk, that conform to the specified criteria, optionally recursing through + subdirectories, and using a specified root path for entries added to the + zip archive. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and adds those files to the ZipFile, using + the specified directory path in the archive. If recurseDirectories + is true, files are also selected from subdirectories, and the directory + structure in the filesystem is reproduced in the zip archive, rooted at + the directory specified by directoryOnDisk. For details on the + syntax for the selectionCriteria parameter, see . + + + + + This example zips up all files that are NOT *.pst files, in the current + working directory and any subdirectories. + + + using (ZipFile zip = new ZipFile()) + { + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true); + zip.Save(PathToZipArchive); + } + + + Using zip As ZipFile = New ZipFile + zip.AddSelectedFiles("name != *.pst", SourceDirectory, "backup", true) + zip.Save(PathToZipArchive) + End Using + + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a real + directory in the current filesystem. If the files within the zip are + later extracted, this is the path used for the extracted file. Passing + null (nothing in VB) will use the path on the file name, if any; in other + words it would use directoryOnDisk, plus any subdirectory. Passing + the empty string ("") will insert the item at the root path within the + archive. + + + + If true, the method also scans subdirectories for files matching the + criteria. + + + + + Updates the ZipFile with a selection of files from the disk that conform + to the specified criteria. + + + + This method selects files from the specified disk directory that match the + specified selection criteria, and Updates the ZipFile with those + files, using the specified directory path in the archive. If + recurseDirectories is true, files are also selected from + subdirectories, and the directory structure in the filesystem is + reproduced in the zip archive, rooted at the directory specified by + directoryOnDisk. For details on the syntax for the + selectionCriteria parameter, see . + + + + The criteria for selection of files to add to the ZipFile. + + + + The path to the directory in the filesystem from which to select files. + + + + Specifies a directory path to use to in place of the + directoryOnDisk. This path may, or may not, correspond to a + real directory in the current filesystem. If the files within the zip + are later extracted, this is the path used for the extracted file. + Passing null (nothing in VB) will use the path on the file name, if + any; in other words it would use directoryOnDisk, plus any + subdirectory. Passing the empty string ("") will insert the item at + the root path within the archive. + + + + If true, the method also scans subdirectories for files matching the criteria. + + + + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example selects all the PhotoShop files from within an archive, and extracts them + to the current working directory. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var PhotoShopFiles = zip1.SelectEntries("*.psd"); + foreach (ZipEntry psd in PhotoShopFiles) + { + psd.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim PhotoShopFiles as ICollection(Of ZipEntry) + PhotoShopFiles = zip1.SelectEntries("*.psd") + Dim psd As ZipEntry + For Each psd In PhotoShopFiles + psd.Extract + Next + End Using + + + the string that specifies which entries to select + a collection of ZipEntry objects that conform to the inclusion spec + + + + Retrieve entries from the zipfile by specified criteria. + + + + + This method allows callers to retrieve the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + var UpdatedPhotoShopFiles = zip1.SelectEntries("*.psd", "UpdatedFiles"); + foreach (ZipEntry e in UpdatedPhotoShopFiles) + { + // prompt for extract here + if (WantExtract(e.FileName)) + e.Extract(); + } + } + + + Using zip1 As ZipFile = ZipFile.Read(ZipFileName) + Dim UpdatedPhotoShopFiles As ICollection(Of ZipEntry) = zip1.SelectEntries("*.psd", "UpdatedFiles") + Dim e As ZipEntry + For Each e In UpdatedPhotoShopFiles + ' prompt for extract here + If Me.WantExtract(e.FileName) Then + e.Extract + End If + Next + End Using + + + the string that specifies which entries to select + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the inclusion spec + + + + Remove entries from the zipfile by specified criteria. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + This example removes all entries in a zip file that were modified prior to January 1st, 2008. + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01"); + // don't forget to save the archive! + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01") + ' do not forget to save the archive! + zip1.Save + End Using + + + the string that specifies which entries to select + the number of entries removed + + + + Remove entries from the zipfile by specified criteria, and within the specified + path in the archive. + + + + + This method allows callers to remove the collection of entries from the zipfile + that fit the specified criteria. The criteria are described in a string format, and + can include patterns for the filename; constraints on the size of the entry; + constraints on the last modified, created, or last accessed time for the file + described by the entry; or the attributes of the entry. + + + + For details on the syntax for the selectionCriteria parameter, see . + + + + This method is intended for use with a ZipFile that has been read from storage. + When creating a new ZipFile, this method will work only after the ZipArchive has + been Saved to the disk (the ZipFile class subsequently and implicitly reads the Zip + archive from storage.) Calling SelectEntries on a ZipFile that has not yet been + saved will deliver undefined results. + + + + + Thrown if selectionCriteria has an invalid syntax. + + + + + using (ZipFile zip1 = ZipFile.Read(ZipFileName)) + { + // remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents"); + // a call to ZipFile.Save will make the modifications permanent + zip1.Save(); + } + + + Using zip As ZipFile = ZipFile.Read(ZipFileName) + ' remove all entries from prior to Jan 1, 2008 + zip1.RemoveEntries("mtime < 2008-01-01", "documents") + ' a call to ZipFile.Save will make the modifications permanent + zip1.Save + End Using + + + + the string that specifies which entries to select + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + the number of entries removed + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the selectionCriteria string, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15"); + } + + + the selection criteria for entries to extract. + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the current working directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + overwriting any existing files. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15", + ExtractExistingFileAction.OverwriteSilently); + } + + + + the selection criteria for entries to extract. + + + The action to take if extraction would overwrite an existing file. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are selected from the specified directory within the archive, and then + extracted into the current working directory. + + + + If any of the files to be extracted already exist, then the action taken is as + specified in the property on the + corresponding ZipEntry instance. By default, the action taken in this case is to + throw an exception. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all XML files modified after 15 January 2009, + and writes them to the "unpack" directory. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml and mtime > 2009-01-15","unpack"); + } + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. If any of the files to be + extracted already exist, an exception will be thrown. + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + the selection criteria for entries to extract. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + the directory on the disk into which to extract. It will be created + if it does not exist. + + + + + Selects and Extracts a set of Entries from the ZipFile. + + + + + The entries are extracted into the specified directory. When extraction would would + overwrite an existing filesystem file, the action taken is as specified in the + parameter. + + + + For information on the syntax of the string describing the entry selection criteria, + see . + + + + + This example shows how extract all files with an XML extension or with a size larger than 100,000 bytes, + and puts them in the unpack directory. For any files that already exist in + that destination directory, they will not be overwritten. + + using (ZipFile zip = ZipFile.Read(zipArchiveName)) + { + zip.ExtractSelectedEntries("name = *.xml or size > 100000", + null, + "unpack", + ExtractExistingFileAction.DontOverwrite); + } + + + + the selection criteria for entries to extract. + + + The directory on the disk into which to extract. It will be created if it does not exist. + + + + The directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + + The action to take if extraction would overwrite an existing file. + + + + + + + + Static constructor for ZipFile + + + Code Pages 437 and 1252 for English are same + Code Page 1252 Windows Latin 1 (ANSI) - + Code Page 437 MS-DOS Latin US - + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + Generic IEnumerator support, for use of a ZipFile in an enumeration. + + + + You probably do not want to call GetEnumerator explicitly. Instead + it is implicitly called when you use a loop in C#, or a + For Each loop in VB.NET. + + + + This example reads a zipfile of a given name, then enumerates the + entries in that zip file, and displays the information about each + entry on the Console. + + using (ZipFile zip = ZipFile.Read(zipfile)) + { + bool header = true; + foreach (ZipEntry e in zip) + { + if (header) + { + System.Console.WriteLine("Zipfile: {0}", zip.Name); + System.Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded); + System.Console.WriteLine("BitField: 0x{0:X2}", e.BitField); + System.Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod); + System.Console.WriteLine("\n{1,-22} {2,-6} {3,4} {4,-8} {0}", + "Filename", "Modified", "Size", "Ratio", "Packed"); + System.Console.WriteLine(new System.String('-', 72)); + header = false; + } + + System.Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", + e.FileName, + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), + e.UncompressedSize, + e.CompressionRatio, + e.CompressedSize); + + e.Extract(); + } + } + + + + Dim ZipFileToExtract As String = "c:\foo.zip" + Using zip As ZipFile = ZipFile.Read(ZipFileToExtract) + Dim header As Boolean = True + Dim e As ZipEntry + For Each e In zip + If header Then + Console.WriteLine("Zipfile: {0}", zip.Name) + Console.WriteLine("Version Needed: 0x{0:X2}", e.VersionNeeded) + Console.WriteLine("BitField: 0x{0:X2}", e.BitField) + Console.WriteLine("Compression Method: 0x{0:X2}", e.CompressionMethod) + Console.WriteLine(ChrW(10) & "{1,-22} {2,-6} {3,4} {4,-8} {0}", _ + "Filename", "Modified", "Size", "Ratio", "Packed" ) + Console.WriteLine(New String("-"c, 72)) + header = False + End If + Console.WriteLine("{1,-22} {2,-6} {3,4:F0}% {4,-8} {0}", _ + e.FileName, _ + e.LastModified.ToString("yyyy-MM-dd HH:mm:ss"), _ + e.UncompressedSize, _ + e.CompressionRatio, _ + e.CompressedSize ) + e.Extract + Next + End Using + + + + A generic enumerator suitable for use within a foreach loop. + + + + An IEnumerator, for use of a ZipFile in a foreach construct. + + + + This method is included for COM support. An application generally does not call + this method directly. It is called implicitly by COM clients when enumerating + the entries in the ZipFile instance. In VBScript, this is done with a For Each + statement. In Javascript, this is done with new Enumerator(zipfile). + + + + The IEnumerator over the entries in the ZipFile. + + + + + Options for using ZIP64 extensions when saving zip archives. + + + + + + Designed many years ago, the original zip + specification from PKWARE allowed for 32-bit quantities for the + compressed and uncompressed sizes of zip entries, as well as a 32-bit quantity + for specifying the length of the zip archive itself, and a maximum of 65535 + entries. These limits are now regularly exceeded in many backup and archival + scenarios. Recently, PKWare added extensions to the original zip spec, called + "ZIP64 extensions", to raise those limitations. This property governs whether + DotNetZip will use those extensions when writing zip archives. The use of + these extensions is optional and explicit in DotNetZip because, despite the + status of ZIP64 as a bona fide standard, many other zip tools and libraries do + not support ZIP64, and therefore a zip file with ZIP64 extensions may be + unreadable by some of those other tools. + + + + Set this property to to always use ZIP64 + extensions when saving, regardless of whether your zip archive needs it. + Suppose you add 5 files, each under 100k, to a ZipFile. If you specify Always + for this flag, you will get a ZIP64 archive, though the archive does not need + to use ZIP64 because none of the original zip limits had been exceeded. + + + + Set this property to to tell the DotNetZip + library to never use ZIP64 extensions. This is useful for maximum + compatibility and interoperability, at the expense of the capability of + handling large files or large archives. NB: Windows Explorer in Windows XP + and Windows Vista cannot currently extract files from a zip64 archive, so if + you want to guarantee that a zip archive produced by this library will work in + Windows Explorer, use Never. If you set this property to , and your application creates a zip that would + exceed one of the Zip limits, the library will throw an exception while saving + the zip file. + + + + Set this property to to tell the + DotNetZip library to use the ZIP64 extensions when required by the + entry. After the file is compressed, the original and compressed sizes are + checked, and if they exceed the limits described above, then zip64 can be + used. That is the general idea, but there is an additional wrinkle when saving + to a non-seekable device, like the ASP.NET Response.OutputStream, or + Console.Out. When using non-seekable streams for output, the entry + header - which indicates whether zip64 is in use - is emitted before it is + known if zip64 is necessary. It is only after all entries have been saved + that it can be known if ZIP64 will be required. On seekable output streams, + after saving all entries, the library can seek backward and re-emit the zip + file header to be consistent with the actual ZIP64 requirement. But using a + non-seekable output stream, the library cannot seek backward, so the header + can never be changed. In other words, the archive's use of ZIP64 extensions is + not alterable after the header is emitted. Therefore, when saving to + non-seekable streams, using is the same + as using : it will always produce a zip + archive that uses ZIP64 extensions. + + + + + + + The default behavior, which is "Never". + (For COM clients, this is a 0 (zero).) + + + + + Do not use ZIP64 extensions when writing zip archives. + (For COM clients, this is a 0 (zero).) + + + + + Use ZIP64 extensions when writing zip archives, as necessary. + For example, when a single entry exceeds 0xFFFFFFFF in size, or when the archive as a whole + exceeds 0xFFFFFFFF in size, or when there are more than 65535 entries in an archive. + (For COM clients, this is a 1.) + + + + + Always use ZIP64 extensions when writing zip archives, even when unnecessary. + (For COM clients, this is a 2.) + + + + + An enum representing the values on a three-way toggle switch + for various options in the library. This might be used to + specify whether to employ a particular text encoding, or to use + ZIP64 extensions, or some other option. + + + + + The default behavior. This is the same as "Never". + (For COM clients, this is a 0 (zero).) + + + + + Never use the associated option. + (For COM clients, this is a 0 (zero).) + + + + + Use the associated behavior "as necessary." + (For COM clients, this is a 1.) + + + + + Use the associated behavior Always, whether necessary or not. + (For COM clients, this is a 2.) + + + + + A class for collecting the various options that can be used when + Reading zip files for extraction or update. + + + + + When reading a zip file, there are several options an + application can set, to modify how the file is read, or what + the library does while reading. This class collects those + options into one container. + + + + Pass an instance of the ReadOptions class into the + ZipFile.Read() method. + + + . + . + + + + + An event handler for Read operations. When opening large zip + archives, you may want to display a progress bar or other + indicator of status progress while reading. This parameter + allows you to specify a ReadProgress Event Handler directly. + When you call Read(), the progress event is invoked as + necessary. + + + + + The System.IO.TextWriter to use for writing verbose status messages + during operations on the zip archive. A console application may wish to + pass System.Console.Out to get messages on the Console. A graphical + or headless application may wish to capture the messages in a different + TextWriter, such as a System.IO.StringWriter. + + + + + The System.Text.Encoding to use when reading in the zip archive. Be + careful specifying the encoding. If the value you use here is not the same + as the Encoding used when the zip archive was created (possibly by a + different archiver) you will get unexpected results and possibly exceptions. + + + + + + + + Provides a stream metaphor for reading zip files. + + + + + This class provides an alternative programming model for reading zip files to + the one enabled by the class. Use this when reading zip + files, as an alternative to the class, when you would + like to use a Stream class to read the file. + + + + Some application designs require a readable stream for input. This stream can + be used to read a zip file, and extract entries. + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and + extract zip files. ZipInputStream can be used only to read and + extract zip files. If you want to use a stream to create zip files, check + out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + + Create a ZipInputStream, wrapping it around an existing stream. + + + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + Both the ZipInputStream class and the ZipFile class can be used + to read and extract zip files. Both of them support many of the common zip + features, including Unicode, different compression levels, and ZIP64. The + programming models differ. For example, when extracting entries via calls to + the GetNextEntry() and Read() methods on the + ZipInputStream class, the caller is responsible for creating the file, + writing the bytes into the file, setting the attributes on the file, and + setting the created, last modified, and last accessed timestamps on the + file. All of these things are done automatically by a call to ZipEntry.Extract(). For this reason, the + ZipInputStream is generally recommended for when your application wants + to extract the data, without storing that data into a file. + + + + Aside from the obvious differences in programming model, there are some + differences in capability between the ZipFile class and the + ZipInputStream class. + + + + + ZipFile can be used to create or update zip files, or read and extract + zip files. ZipInputStream can be used only to read and extract zip + files. If you want to use a stream to create zip files, check out the . + + + + ZipInputStream cannot read segmented or spanned + zip files. + + + + ZipInputStream will not read Zip file comments. + + + + When reading larger files, ZipInputStream will always underperform + ZipFile. This is because the ZipInputStream does a full scan on the + zip file, while the ZipFile class reads the central directory of the + zip file. + + + + + + + + The stream to read. It must be readable. This stream will be closed at + the time the ZipInputStream is closed. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(inputFileName, FileMode.Open, FileAccess.Read)) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using raw As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read) + Using input As ZipInputStream = New ZipInputStream(raw) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Using + End Sub + + + + + + Create a ZipInputStream, given the name of an existing zip file. + + + + + + This constructor opens a FileStream for the given zipfile, and + wraps a ZipInputStream around that. See the documentation for the + constructor for full details. + + + + While the class is generally easier + to use, this class provides an alternative to those + applications that want to read from a zipfile directly, + using a . + + + + + + The name of the filesystem file to read. + + + + + This example shows how to read a zip file, and extract entries, using the + ZipInputStream class. + + + private void Unzip() + { + byte[] buffer= new byte[2048]; + int n; + using (var input= new ZipInputStream(inputFileName)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + if (e.IsDirectory) continue; + string outputPath = Path.Combine(extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer, 0, buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub UnZip() + Dim inputFileName As String = "MyArchive.zip" + Dim extractDir As String = "extract" + Dim buffer As Byte() = New Byte(2048) {} + Using input As ZipInputStream = New ZipInputStream(inputFileName) + Dim e As ZipEntry + Do While (Not e = input.GetNextEntry Is Nothing) + If Not e.IsDirectory Then + Using output As FileStream = File.Open(Path.Combine(extractDir, e.FileName), _ + FileMode.Create, FileAccess.ReadWrite) + Dim n As Integer + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + End If + Loop + End Using + End Sub + + + + + + Create a ZipInputStream, explicitly specifying whether to + keep the underlying stream open. + + + + See the documentation for the ZipInputStream(Stream) + constructor for a discussion of the class, and an example of how to use the class. + + + + The stream to read from. It must be readable. + + + + true if the application would like the stream + to remain open after the ZipInputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + The text encoding to use when reading entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to read zip archives that use something other than + UTF-8 or IBM437, set this property to specify the code page to use when + reading encoded filenames and comments for each ZipEntry in the zip + file. + + + + This property is "provisional". When the entry in the zip archive is not + explicitly marked as using UTF-8, then IBM437 is used to decode filenames + and comments. If a loss of data would result from using IBM436 - + specifically when encoding and decoding is not reflexive - the codepage + specified here is used. It is possible, therefore, to have a given entry + with a Comment encoded in IBM437 and a FileName encoded with + the specified "provisional" codepage. + + + + When a zip file uses an arbitrary, non-UTF8 code page for encoding, there + is no standard way for the reader application - whether DotNetZip, WinZip, + WinRar, or something else - to know which codepage has been used for the + entries. Readers of zip files are not able to inspect the zip file and + determine the codepage that was used for the entries contained within it. + It is left to the application or user to determine the necessary codepage + when reading zip files encoded this way. If you use an incorrect codepage + when reading a zipfile, you will get entries with filenames that are + incorrect, and the incorrect filenames may even contain characters that + are not legal for use within filenames in Windows. Extracting entries with + illegal characters in the filenames will lead to exceptions. It's too bad, + but this is just the way things are with code pages in zip files. Caveat + Emptor. + + + + + + + Size of the work buffer to use for the ZLIB codec during decompression. + + + + Setting this affects the performance and memory efficiency of compression + and decompression. For larger files, setting this to a larger size may + improve performance, but the exact numbers vary depending on available + memory, and a bunch of other variables. I don't have good firm + recommendations on how to set it. You'll have to test it yourself. Or + just leave it alone and accept the default. + + + + + Sets the password to be used on the ZipInputStream instance. + + + + + + When reading a zip archive, this password is used to read and decrypt the + entries that are encrypted within the zip file. When entries within a zip + file use different passwords, set the appropriate password for the entry + before the first call to Read() for each entry. + + + + When reading an entry that is not encrypted, the value of this property is + ignored. + + + + + + + This example uses the ZipInputStream to read and extract entries from a + zip file, using a potentially different password for each entry. + + + byte[] buffer= new byte[2048]; + int n; + using (var raw = File.Open(_inputFileName, FileMode.Open, FileAccess.Read )) + { + using (var input= new ZipInputStream(raw)) + { + ZipEntry e; + while (( e = input.GetNextEntry()) != null) + { + input.Password = PasswordForEntry(e.FileName); + if (e.IsDirectory) continue; + string outputPath = Path.Combine(_extractDir, e.FileName); + using (var output = File.Open(outputPath, FileMode.Create, FileAccess.ReadWrite)) + { + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + + + + Read the data from the stream into the buffer. + + + + + The data for the zipentry will be decrypted and uncompressed, as + necessary, before being copied into the buffer. + + + + You must set the property before calling + Read() the first time for an encrypted entry. To determine if an + entry is encrypted and requires a password, check the ZipEntry.Encryption property. + + + + The buffer to hold the data read from the stream. + the offset within the buffer to copy the first byte read. + the number of bytes to read. + the number of bytes read, after decryption and decompression. + + + + Read the next entry from the zip file. + + + + + Call this method just before calling , + to position the pointer in the zip file to the next entry that can be + read. Subsequent calls to Read(), will decrypt and decompress the + data in the zip file, until Read() returns 0. + + + + Each time you call GetNextEntry(), the pointer in the wrapped + stream is moved to the next entry in the zip file. If you call , and thus re-position the pointer within + the file, you will need to call GetNextEntry() again, to insure + that the file pointer is positioned at the beginning of a zip entry. + + + + This method returns the ZipEntry. Using a stream approach, you will + read the raw bytes for an entry in a zip file via calls to Read(). + Alternatively, you can extract an entry into a file, or a stream, by + calling , or one of its siblings. + + + + + + The ZipEntry read. Returns null (or Nothing in VB) if there are no more + entries in the zip file. + + + + + + Dispose the stream. + + + + + This method disposes the ZipInputStream. It may also close the + underlying stream, depending on which constructor was used. + + + + Typically the application will call Dispose() implicitly, via + a using statement in C#, or a Using statement in VB. + + + + Application code won't call this code directly. This method may + be invoked in two distinct scenarios. If disposing == true, the + method has been called directly or indirectly by a user's code, + for example via the public Dispose() method. In this case, both + managed and unmanaged resources can be referenced and disposed. + If disposing == false, the method has been called by the runtime + from inside the object finalizer and this method should not + reference other objects; in that case only unmanaged resources + must be referenced or disposed. + + + + + true if the Dispose method was invoked by user code. + + + + + Always returns true. + + + + + Returns the value of CanSeek for the underlying (wrapped) stream. + + + + + Always returns false. + + + + + Returns the length of the underlying stream. + + + + + Gets or sets the position of the underlying stream. + + + Setting the position is equivalent to calling Seek(value, SeekOrigin.Begin). + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + + + + This method seeks in the underlying stream. + + + + + Call this method if you want to seek around within the zip file for random access. + + + + Applications can intermix calls to Seek() with calls to . After a call to Seek(), + GetNextEntry() will get the next ZipEntry that falls after + the current position in the input stream. You're on your own for finding + out just where to seek in the stream, to get to the various entries. + + + + + the offset point to seek to + the reference point from which to seek + The new position + + + + This method always throws a NotSupportedException. + + ignored + + + + Provides a stream metaphor for generating zip files. + + + + + This class writes zip files, as defined in the specification + for zip files described by PKWare. The compression for this + implementation is provided by a managed-code version of Zlib, included with + DotNetZip in the classes in the Ionic.Zlib namespace. + + + + This class provides an alternative programming model to the one enabled by the + class. Use this when creating zip files, as an + alternative to the class, when you would like to use a + Stream type to write the zip file. + + + + Both the ZipOutputStream class and the ZipFile class can be used + to create zip files. Both of them support many of the common zip features, + including Unicode, different compression levels, and ZIP64. They provide + very similar performance when creating zip files. + + + + The ZipFile class is generally easier to use than + ZipOutputStream and should be considered a higher-level interface. For + example, when creating a zip file via calls to the PutNextEntry() and + Write() methods on the ZipOutputStream class, the caller is + responsible for opening the file, reading the bytes from the file, writing + those bytes into the ZipOutputStream, setting the attributes on the + ZipEntry, and setting the created, last modified, and last accessed + timestamps on the zip entry. All of these things are done automatically by a + call to ZipFile.AddFile(). + For this reason, the ZipOutputStream is generally recommended for use + only when your application emits arbitrary data, not necessarily data from a + filesystem file, directly into a zip file, and does so using a Stream + metaphor. + + + + Aside from the differences in programming model, there are other + differences in capability between the two classes. + + + + + ZipFile can be used to read and extract zip files, in addition to + creating zip files. ZipOutputStream cannot read zip files. If you want + to use a stream to read zip files, check out the class. + + + + ZipOutputStream does not support the creation of segmented or spanned + zip files. + + + + ZipOutputStream cannot produce a self-extracting archive. + + + + + Be aware that the ZipOutputStream class implements the interface. In order for + ZipOutputStream to produce a valid zip file, you use use it within + a using clause (Using in VB), or call the Dispose() method + explicitly. See the examples for how to employ a using clause. + + + + Also, a note regarding compression performance: On the desktop .NET + Framework, DotNetZip can use a multi-threaded compression implementation + that provides significant speed increases on large files, over 300k or so, + at the cost of increased memory use at runtime. (The output of the + compression is almost exactly the same size). But, the multi-threaded + approach incurs a performance hit on smaller files. There's no way for the + ZipOutputStream to know whether parallel compression will be beneficial, + because the ZipOutputStream does not know how much data you will write + through the stream. You may wish to set the property to zero, if you are compressing + large files through ZipOutputStream. This will cause parallel + compression to be used, always. + + + + + + Create a ZipOutputStream, wrapping an existing stream. + + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + + + The stream to wrap. It must be writable. This stream will be closed at + the time the ZipOutputStream is closed. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(raw)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using raw As FileStream = File.Open(outputFileName, FileMode.Create, FileAccess.ReadWrite) + Using output As ZipOutputStream = New ZipOutputStream(raw) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End Using + End If + End Sub + + + + + + Create a ZipOutputStream that writes to a filesystem file. + + + + The class is generally easier to use when creating + zip files. The ZipOutputStream offers a different metaphor for creating a + zip file, based on the class. + + + + The name of the zip file to create. + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + if (filesToZip.Count == 0) + { + System.Console.WriteLine("Nothing to do."); + return; + } + + using (var output= new ZipOutputStream(outputFileName)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + + foreach (string inputFileName in filesToZip) + { + System.Console.WriteLine("file: {0}", inputFileName); + + output.PutNextEntry(inputFileName); + using (var input = File.Open(inputFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Write )) + { + byte[] buffer= new byte[2048]; + int n; + while ((n= input.Read(buffer,0,buffer.Length)) > 0) + { + output.Write(buffer,0,n); + } + } + } + } + } + + + + Private Sub Zipup() + Dim outputFileName As String = "XmlData.zip" + Dim filesToZip As String() = Directory.GetFiles(".", "*.xml") + If (filesToZip.Length = 0) Then + Console.WriteLine("Nothing to do.") + Else + Using output As ZipOutputStream = New ZipOutputStream(outputFileName) + output.Password = "VerySecret!" + output.Encryption = EncryptionAlgorithm.WinZipAes256 + Dim inputFileName As String + For Each inputFileName In filesToZip + Console.WriteLine("file: {0}", inputFileName) + output.PutNextEntry(inputFileName) + Using input As FileStream = File.Open(inputFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) + Dim n As Integer + Dim buffer As Byte() = New Byte(2048) {} + Do While (n = input.Read(buffer, 0, buffer.Length) > 0) + output.Write(buffer, 0, n) + Loop + End Using + Next + End Using + End If + End Sub + + + + + + Create a ZipOutputStream. + + + + See the documentation for the ZipOutputStream(Stream) + constructor for an example. + + + + The stream to wrap. It must be writable. + + + + true if the application would like the stream + to remain open after the ZipOutputStream has been closed. + + + + Provides a string representation of the instance. + + + This can be useful for debugging purposes. + + + a string representation of the instance. + + + + Sets the password to be used on the ZipOutputStream instance. + + + + + + When writing a zip archive, this password is applied to the entries, not + to the zip archive itself. It applies to any ZipEntry subsequently + written to the ZipOutputStream. + + + + Using a password does not encrypt or protect the "directory" of the + archive - the list of entries contained in the archive. If you set the + Password property, the password actually applies to individual + entries that are added to the archive, subsequent to the setting of this + property. The list of filenames in the archive that is eventually created + will appear in clear text, but the contents of the individual files are + encrypted. This is how Zip encryption works. + + + + If you set this property, and then add a set of entries to the archive via + calls to PutNextEntry, then each entry is encrypted with that + password. You may also want to change the password between adding + different entries. If you set the password, add an entry, then set the + password to null (Nothing in VB), and add another entry, the + first entry is encrypted and the second is not. + + + + When setting the Password, you may also want to explicitly set the property, to specify how to encrypt the entries added + to the ZipFile. If you set the Password to a non-null value and do not + set , then PKZip 2.0 ("Weak") encryption is used. + This encryption is relatively weak but is very interoperable. If + you set the password to a null value (Nothing in VB), + Encryption is reset to None. + + + + Special case: if you wrap a ZipOutputStream around a non-seekable stream, + and use encryption, and emit an entry of zero bytes, the Close() or + PutNextEntry() following the entry will throw an exception. + + + + + + + The Encryption to use for entries added to the ZipOutputStream. + + + + + The specified Encryption is applied to the entries subsequently + written to the ZipOutputStream instance. + + + + If you set this to something other than + EncryptionAlgorithm.None, you will also need to set the + to a non-null, non-empty value in + order to actually get encryption on the entry. + + + + + ZipOutputStream.Password + ZipEntry.Encryption + + + + Size of the work buffer to use for the ZLIB codec during compression. + + + + Setting this may affect performance. For larger files, setting this to a + larger size may improve performance, but I'm not sure. Sorry, I don't + currently have good recommendations on how to set it. You can test it if + you like. + + + + + The compression strategy to use for all entries. + + + + Set the Strategy used by the ZLIB-compatible compressor, when compressing + data for the entries in the zip archive. Different compression strategies + work better on different sorts of data. The strategy parameter can affect + the compression ratio and the speed of compression but not the correctness + of the compresssion. For more information see . + + + + + The type of timestamp attached to the ZipEntry. + + + + Set this in order to specify the kind of timestamp that should be emitted + into the zip file for each entry. + + + + + Sets the compression level to be used for entries subsequently added to + the zip archive. + + + + + Varying the compression level used on entries can affect the + size-vs-speed tradeoff when compression and decompressing data streams + or files. + + + + As with some other properties on the ZipOutputStream class, like , and , + setting this property on a ZipOutputStream + instance will cause the specified CompressionLevel to be used on all + items that are subsequently added to the + ZipOutputStream instance. + + + + If you do not set this property, the default compression level is used, + which normally gives a good balance of compression efficiency and + compression speed. In some tests, using BestCompression can + double the time it takes to compress, while delivering just a small + increase in compression efficiency. This behavior will vary with the + type of data you compress. If you are in doubt, just leave this setting + alone, and accept the default. + + + + + + The compression method used on each entry added to the ZipOutputStream. + + + + + A comment attached to the zip archive. + + + + + + The application sets this property to specify a comment to be embedded + into the generated zip archive. + + + + According to PKWARE's + zip specification, the comment is not encrypted, even if there is a + password set on the zip file. + + + + The specification does not describe how to indicate the encoding used + on a comment string. Many "compliant" zip tools and libraries use + IBM437 as the code page for comments; DotNetZip, too, follows that + practice. On the other hand, there are situations where you want a + Comment to be encoded with something else, for example using code page + 950 "Big-5 Chinese". To fill that need, DotNetZip will encode the + comment following the same procedure it follows for encoding + filenames: (a) if is + Never, it uses the default encoding (IBM437). (b) if is Always, it always uses the + alternate encoding (). (c) if is AsNecessary, it uses the + alternate encoding only if the default encoding is not sufficient for + encoding the comment - in other words if decoding the result does not + produce the original string. This decision is taken at the time of + the call to ZipFile.Save(). + + + + + + + Specify whether to use ZIP64 extensions when saving a zip archive. + + + + + The default value for the property is . is + safest, in the sense that you will not get an Exception if a + pre-ZIP64 limit is exceeded. + + + + You must set this property before calling Write(). + + + + + + + Indicates whether ZIP64 extensions were used when saving the zip archive. + + + + The value is defined only after the ZipOutputStream has been closed. + + + + + Whether the ZipOutputStream should use case-insensitive comparisons when + checking for uniqueness of zip entries. + + + + + Though the zip specification doesn't prohibit zipfiles with duplicate + entries, Sane zip files have no duplicates, and the DotNetZip library + cannot create zip files with duplicate entries. If an application attempts + to call with a name that duplicates one + already used within the archive, the library will throw an Exception. + + + This property allows the application to specify whether the + ZipOutputStream instance considers ordinal case when checking for + uniqueness of zip entries. + + + + + + Indicates whether to encode entry filenames and entry comments using + Unicode (UTF-8). + + + + + The + PKWare zip specification provides for encoding file names and file + comments in either the IBM437 code page, or in UTF-8. This flag selects + the encoding according to that specification. By default, this flag is + false, and filenames and comments are encoded into the zip file in the + IBM437 codepage. Setting this flag to true will specify that filenames + and comments that cannot be encoded with IBM437 will be encoded with + UTF-8. + + + + Zip files created with strict adherence to the PKWare specification with + respect to UTF-8 encoding can contain entries with filenames containing + any combination of Unicode characters, including the full range of + characters from Chinese, Latin, Hebrew, Greek, Cyrillic, and many other + alphabets. However, because at this time, the UTF-8 portion of the PKWare + specification is not broadly supported by other zip libraries and + utilities, such zip files may not be readable by your favorite zip tool or + archiver. In other words, interoperability will decrease if you set this + flag to true. + + + + In particular, Zip files created with strict adherence to the PKWare + specification with respect to UTF-8 encoding will not work well with + Explorer in Windows XP or Windows Vista, because Windows compressed + folders, as far as I know, do not support UTF-8 in zip files. Vista can + read the zip files, but shows the filenames incorrectly. Unpacking from + Windows Vista Explorer will result in filenames that have rubbish + characters in place of the high-order UTF-8 bytes. + + + + Also, zip files that use UTF-8 encoding will not work well with Java + applications that use the java.util.zip classes, as of v5.0 of the Java + runtime. The Java runtime does not correctly implement the PKWare + specification in this regard. + + + + As a result, we have the unfortunate situation that "correct" behavior by + the DotNetZip library with regard to Unicode encoding of filenames during + zip creation will result in zip files that are readable by strictly + compliant and current tools (for example the most recent release of the + commercial WinZip tool); but these zip files will not be readable by + various other tools or libraries, including Windows Explorer. + + + + The DotNetZip library can read and write zip files with UTF8-encoded + entries, according to the PKware spec. If you use DotNetZip for both + creating and reading the zip file, and you use UTF-8, there will be no + loss of information in the filenames. For example, using a self-extractor + created by this library will allow you to unpack files correctly with no + loss of information in the filenames. + + + + If you do not set this flag, it will remain false. If this flag is false, + the ZipOutputStream will encode all filenames and comments using + the IBM437 codepage. This can cause "loss of information" on some + filenames, but the resulting zipfile will be more interoperable with other + utilities. As an example of the loss of information, diacritics can be + lost. The o-tilde character will be down-coded to plain o. The c with a + cedilla (Unicode 0xE7) used in Portugese will be downcoded to a c. + Likewise, the O-stroke character (Unicode 248), used in Danish and + Norwegian, will be down-coded to plain o. Chinese characters cannot be + represented in codepage IBM437; when using the default encoding, Chinese + characters in filenames will be represented as ?. These are all examples + of "information loss". + + + + The loss of information associated to the use of the IBM437 encoding is + inconvenient, and can also lead to runtime errors. For example, using + IBM437, any sequence of 4 Chinese characters will be encoded as ????. If + your application creates a ZipOutputStream, does not set the + encoding, then adds two files, each with names of four Chinese characters + each, this will result in a duplicate filename exception. In the case + where you add a single file with a name containing four Chinese + characters, the zipfile will save properly, but extracting that file + later, with any zip tool, will result in an error, because the question + mark is not legal for use within filenames on Windows. These are just a + few examples of the problems associated to loss of information. + + + + This flag is independent of the encoding of the content within the entries + in the zip file. Think of the zip file as a container - it supports an + encoding. Within the container are other "containers" - the file entries + themselves. The encoding within those entries is independent of the + encoding of the zip archive container for those entries. + + + + Rather than specify the encoding in a binary fashion using this flag, an + application can specify an arbitrary encoding via the property. Setting the encoding + explicitly when creating zip archives will result in non-compliant zip + files that, curiously, are fairly interoperable. The challenge is, the + PKWare specification does not provide for a way to specify that an entry + in a zip archive uses a code page that is neither IBM437 nor UTF-8. + Therefore if you set the encoding explicitly when creating a zip archive, + you must take care upon reading the zip archive to use the same code page. + If you get it wrong, the behavior is undefined and may result in incorrect + filenames, exceptions, stomach upset, hair loss, and acne. + + + + + + + The text encoding to use when emitting entries into the zip archive, for + those entries whose filenames or comments cannot be encoded with the + default (IBM437) encoding. + + + + + In its + zip specification, PKWare describes two options for encoding + filenames and comments: using IBM437 or UTF-8. But, some archiving tools + or libraries do not follow the specification, and instead encode + characters using the system default code page. For example, WinRAR when + run on a machine in Shanghai may encode filenames with the Big-5 Chinese + (950) code page. This behavior is contrary to the Zip specification, but + it occurs anyway. + + + + When using DotNetZip to write zip archives that will be read by one of + these other archivers, set this property to specify the code page to use + when encoding the and for each ZipEntry in the zip file, for + values that cannot be encoded with the default codepage for zip files, + IBM437. This is why this property is "provisional". In all cases, IBM437 + is used where possible, in other words, where no loss of data would + result. It is possible, therefore, to have a given entry with a + Comment encoded in IBM437 and a FileName encoded with the + specified "provisional" codepage. + + + + Be aware that a zip file created after you've explicitly set the + ProvisionalAlternateEncoding property to a value other than + IBM437 may not be compliant to the PKWare specification, and may not be + readable by compliant archivers. On the other hand, many (most?) + archivers are non-compliant and can read zip files created in arbitrary + code pages. The trick is to use or specify the proper codepage when + reading the zip. + + + + When creating a zip archive using this library, it is possible to change + the value of ProvisionalAlternateEncoding between each entry you + add, and between adding entries and the call to Close(). Don't do + this. It will likely result in a zipfile that is not readable. For best + interoperability, either leave ProvisionalAlternateEncoding + alone, or specify it only once, before adding any entries to the + ZipOutputStream instance. There is one exception to this + recommendation, described later. + + + + When using an arbitrary, non-UTF8 code page for encoding, there is no + standard way for the creator application - whether DotNetZip, WinZip, + WinRar, or something else - to formally specify in the zip file which + codepage has been used for the entries. As a result, readers of zip files + are not able to inspect the zip file and determine the codepage that was + used for the entries contained within it. It is left to the application + or user to determine the necessary codepage when reading zip files encoded + this way. If you use an incorrect codepage when reading a zipfile, you + will get entries with filenames that are incorrect, and the incorrect + filenames may even contain characters that are not legal for use within + filenames in Windows. Extracting entries with illegal characters in the + filenames will lead to exceptions. It's too bad, but this is just the way + things are with code pages in zip files. Caveat Emptor. + + + + One possible approach for specifying the code page for a given zip file is + to describe the code page in a human-readable form in the Zip comment. For + example, the comment may read "Entries in this archive are encoded in the + Big5 code page". For maximum interoperability, the zip comment in this + case should be encoded in the default, IBM437 code page. In this case, + the zip comment is encoded using a different page than the filenames. To + do this, Specify ProvisionalAlternateEncoding to your desired + region-specific code page, once before adding any entries, and then set + the property and reset + ProvisionalAlternateEncoding to IBM437 before calling Close(). + + + + + + A Text Encoding to use when encoding the filenames and comments for + all the ZipEntry items, during a ZipFile.Save() operation. + + + + Whether the encoding specified here is used during the save depends + on . + + + + + + A flag that tells if and when this instance should apply + AlternateEncoding to encode the filenames and comments associated to + of ZipEntry objects contained within this instance. + + + + + The default text encoding used in zip archives. It is numeric 437, also + known as IBM437. + + + + + + The size threshold for an entry, above which a parallel deflate is used. + + + + + + DotNetZip will use multiple threads to compress any ZipEntry, when + the CompressionMethod is Deflate, and if the entry is + larger than the given size. Zero means "always use parallel + deflate", while -1 means "never use parallel deflate". + + + + If the entry size cannot be known before compression, as with any entry + added via a ZipOutputStream, then Parallel deflate will never be + performed, unless the value of this property is zero. + + + + A parallel deflate operations will speed up the compression of + large files, on computers with multiple CPUs or multiple CPU + cores. For files above 1mb, on a dual core or dual-cpu (2p) + machine, the time required to compress the file can be 70% of the + single-threaded deflate. For very large files on 4p machines the + compression can be done in 30% of the normal time. The downside + is that parallel deflate consumes extra memory during the deflate, + and the deflation is slightly less effective. + + + + Parallel deflate tends to not be as effective as single-threaded deflate + because the original data stream is split into multiple independent + buffers, each of which is compressed in parallel. But because they are + treated independently, there is no opportunity to share compression + dictionaries, and additional framing bytes must be added to the output + stream. For that reason, a deflated stream may be slightly larger when + compressed using parallel deflate, as compared to a traditional + single-threaded deflate. For files of about 512k, the increase over the + normal deflate is as much as 5% of the total compressed size. For larger + files, the difference can be as small as 0.1%. + + + + Multi-threaded compression does not give as much an advantage when using + Encryption. This is primarily because encryption tends to slow down + the entire pipeline. Also, multi-threaded compression gives less of an + advantage when using lower compression levels, for example . You may have to perform + some tests to determine the best approach for your situation. + + + + The default value for this property is -1, which means parallel + compression will not be performed unless you set it to zero. + + + + + + + The maximum number of buffer pairs to use when performing + parallel compression. + + + + + This property sets an upper limit on the number of memory + buffer pairs to create when performing parallel + compression. The implementation of the parallel + compression stream allocates multiple buffers to + facilitate parallel compression. As each buffer fills up, + the stream uses + ThreadPool.QueueUserWorkItem() to compress those + buffers in a background threadpool thread. After a buffer + is compressed, it is re-ordered and written to the output + stream. + + + + A higher number of buffer pairs enables a higher degree of + parallelism, which tends to increase the speed of compression on + multi-cpu computers. On the other hand, a higher number of buffer + pairs also implies a larger memory consumption, more active worker + threads, and a higher cpu utilization for any compression. This + property enables the application to limit its memory consumption and + CPU utilization behavior depending on requirements. + + + + For each compression "task" that occurs in parallel, there are 2 + buffers allocated: one for input and one for output. This property + sets a limit for the number of pairs. The total amount of storage + space allocated for buffering will then be (N*S*2), where N is the + number of buffer pairs, S is the size of each buffer (). By default, DotNetZip allocates 4 buffer + pairs per CPU core, so if your machine has 4 cores, and you retain + the default buffer size of 128k, then the + ParallelDeflateOutputStream will use 4 * 4 * 2 * 128kb of buffer + memory in total, or 4mb, in blocks of 128kb. If you then set this + property to 8, then the number will be 8 * 2 * 128kb of buffer + memory, or 2mb. + + + + CPU utilization will also go up with additional buffers, because a + larger number of buffer pairs allows a larger number of background + threads to compress in parallel. If you find that parallel + compression is consuming too much memory or CPU, you can adjust this + value downward. + + + + The default value is 16. Different values may deliver better or + worse results, depending on your priorities and the dynamic + performance characteristics of your storage and compute resources. + + + + This property is not the number of buffer pairs to use; it is an + upper limit. An illustration: Suppose you have an application that + uses the default value of this property (which is 16), and it runs + on a machine with 2 CPU cores. In that case, DotNetZip will allocate + 4 buffer pairs per CPU core, for a total of 8 pairs. The upper + limit specified by this property has no effect. + + + + The application can set this value at any time, but it is + effective only if set before calling + ZipOutputStream.Write() for the first time. + + + + + + + + + Returns true if an entry by the given name has already been written + to the ZipOutputStream. + + + + The name of the entry to scan for. + + + + true if an entry by the given name has already been written. + + + + + Write the data from the buffer to the stream. + + + + As the application writes data into this stream, the data may be + compressed and encrypted before being written out to the underlying + stream, depending on the settings of the + and the properties. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Specify the name of the next entry that will be written to the zip file. + + + + + Call this method just before calling , to + specify the name of the entry that the next set of bytes written to + the ZipOutputStream belongs to. All subsequent calls to Write, + until the next call to PutNextEntry, + will be inserted into the named entry in the zip file. + + + + If the used in PutNextEntry() ends in + a slash, then the entry added is marked as a directory. Because directory + entries do not contain data, a call to Write(), before an + intervening additional call to PutNextEntry(), will throw an + exception. + + + + If you don't call Write() between two calls to + PutNextEntry(), the first entry is inserted into the zip file as a + file of zero size. This may be what you want. + + + + Because PutNextEntry() closes out the prior entry, if any, this + method may throw if there is a problem with the prior entry. + + + + This method returns the ZipEntry. You can modify public properties + on the ZipEntry, such as , , and so on, until the first call to + ZipOutputStream.Write(), or until the next call to + PutNextEntry(). If you modify the ZipEntry after + having called Write(), you may get a runtime exception, or you may + silently get an invalid zip archive. + + + + + + + This example shows how to create a zip file, using the + ZipOutputStream class. + + + private void Zipup() + { + using (FileStream fs raw = File.Open(_outputFileName, FileMode.Create, FileAccess.ReadWrite )) + { + using (var output= new ZipOutputStream(fs)) + { + output.Password = "VerySecret!"; + output.Encryption = EncryptionAlgorithm.WinZipAes256; + output.PutNextEntry("entry1.txt"); + byte[] buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #1."); + output.Write(buffer,0,buffer.Length); + output.PutNextEntry("entry2.txt"); // this will be zero length + output.PutNextEntry("entry3.txt"); + buffer= System.Text.Encoding.ASCII.GetBytes("This is the content for entry #3."); + output.Write(buffer,0,buffer.Length); + } + } + } + + + + + The name of the entry to be added, including any path to be used + within the zip file. + + + + The ZipEntry created. + + + + + + Dispose the stream + + + + + This method writes the Zip Central directory, then closes the stream. The + application must call Dispose() (or Close) in order to produce a valid zip file. + + + + Typically the application will call Dispose() implicitly, via a using + statement in C#, or a Using statement in VB. + + + + + set this to true, always. + + + + Always returns false. + + + + + Always returns false. + + + + + Always returns true. + + + + + Always returns a NotSupportedException. + + + + + Setting this property always returns a NotSupportedException. Getting it + returns the value of the Position on the underlying stream. + + + + + This is a no-op. + + + + + This method always throws a NotSupportedException. + + ignored + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + ignored + nothing + + + + This method always throws a NotSupportedException. + + ignored + + + + Sort-of like a factory method, ForUpdate is used only when + the application needs to update the zip entry metadata for + a segmented zip file, when the starting segment is earlier + than the ending segment, for a particular entry. + + + + The update is always contiguous, never rolls over. As a + result, this method doesn't need to return a ZSS; it can + simply return a FileStream. That's why it's "sort of" + like a Factory method. + + + Caller must Close/Dispose the stream object returned by + this method. + + + + + + Name of the filesystem file corresponding to the current segment. + + + + The name is not always the name currently being used in the + filesystem. When rwMode is RwMode.Write, the filesystem file has a + temporary name until the stream is closed or until the next segment is + started. + + + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Enumerates the options for a logical conjunction. This enum is intended for use + internally by the FileSelector class. + + + + + FileSelector encapsulates logic that selects files from a source - a zip file + or the filesystem - based on a set of criteria. This class is used internally + by the DotNetZip library, in particular for the AddSelectedFiles() methods. + This class can also be used independently of the zip capability in DotNetZip. + + + + + + The FileSelector class is used internally by the ZipFile class for selecting + files for inclusion into the ZipFile, when the method, or one of + its overloads, is called. It's also used for the methods. Typically, an + application that creates or manipulates Zip archives will not directly + interact with the FileSelector class. + + + + Some applications may wish to use the FileSelector class directly, to + select files from disk volumes based on a set of criteria, without creating or + querying Zip archives. The file selection criteria include: a pattern to + match the filename; the last modified, created, or last accessed time of the + file; the size of the file; and the attributes of the file. + + + + Consult the documentation for + for more information on specifying the selection criteria. + + + + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + By default the FileSelector will traverse NTFS Reparse Points. To + change this, use FileSelector(String, bool). + + + + The criteria for file selection. + + + + Constructor that allows the caller to specify file selection criteria. + + + + + This constructor allows the caller to specify a set of criteria for + selection of files. + + + + See for a description of + the syntax of the selectionCriteria string. + + + + The criteria for file selection. + + whether to traverse NTFS reparse points (junctions). + + + + + The string specifying which files to include when retrieving. + + + + + Specify the criteria in statements of 3 elements: a noun, an operator, + and a value. Consider the string "name != *.doc" . The noun is + "name". The operator is "!=", implying "Not Equal". The value is + "*.doc". That criterion, in English, says "all files with a name that + does not end in the .doc extension." + + + + Supported nouns include "name" (or "filename") for the filename; + "atime", "mtime", and "ctime" for last access time, last modfied time, + and created time of the file, respectively; "attributes" (or "attrs") + for the file attributes; "size" (or "length") for the file length + (uncompressed); and "type" for the type of object, either a file or a + directory. The "attributes", "type", and "name" nouns all support = + and != as operators. The "size", "atime", "mtime", and "ctime" nouns + support = and !=, and >, >=, <, <= as well. The times are + taken to be expressed in local time. + + + + Specify values for the file attributes as a string with one or more of + the characters H,R,S,A,I,L in any order, implying file attributes of + Hidden, ReadOnly, System, Archive, NotContextIndexed, and ReparsePoint + (symbolic link) respectively. + + + + To specify a time, use YYYY-MM-DD-HH:mm:ss or YYYY/MM/DD-HH:mm:ss as + the format. If you omit the HH:mm:ss portion, it is assumed to be + 00:00:00 (midnight). + + + + The value for a size criterion is expressed in integer quantities of + bytes, kilobytes (use k or kb after the number), megabytes (m or mb), + or gigabytes (g or gb). + + + + The value for a name is a pattern to match against the filename, + potentially including wildcards. The pattern follows CMD.exe glob + rules: * implies one or more of any character, while ? implies one + character. If the name pattern contains any slashes, it is matched to + the entire filename, including the path; otherwise, it is matched + against only the filename without the path. This means a pattern of + "*\*.*" matches all files one directory level deep, while a pattern of + "*.*" matches all files in all directories. + + + + To specify a name pattern that includes spaces, use single quotes + around the pattern. A pattern of "'* *.*'" will match all files that + have spaces in the filename. The full criteria string for that would + be "name = '* *.*'" . + + + + The value for a type criterion is either F (implying a file) or D + (implying a directory). + + + + Some examples: + + + + + criteria + Files retrieved + + + + name != *.xls + any file with an extension that is not .xls + + + + + name = *.mp3 + any file with a .mp3 extension. + + + + + *.mp3 + (same as above) any file with a .mp3 extension. + + + + + attributes = A + all files whose attributes include the Archive bit. + + + + + attributes != H + all files whose attributes do not include the Hidden bit. + + + + + mtime > 2009-01-01 + all files with a last modified time after January 1st, 2009. + + + + + ctime > 2009/01/01-03:00:00 + all files with a created time after 3am (local time), + on January 1st, 2009. + + + + + size > 2gb + all files whose uncompressed size is greater than 2gb. + + + + + type = D + all directories in the filesystem. + + + + + + You can combine criteria with the conjunctions AND, OR, and XOR. Using + a string like "name = *.txt AND size >= 100k" for the + selectionCriteria retrieves entries whose names end in .txt, and whose + uncompressed size is greater than or equal to 100 kilobytes. + + + + For more complex combinations of criteria, you can use parenthesis to + group clauses in the boolean logic. Absent parenthesis, the + precedence of the criterion atoms is determined by order of + appearance. Unlike the C# language, the AND conjunction does not take + precendence over the logical OR. This is important only in strings + that contain 3 or more criterion atoms. In other words, "name = *.txt + and size > 1000 or attributes = H" implies "((name = *.txt AND size + > 1000) OR attributes = H)" while "attributes = H OR name = *.txt + and size > 1000" evaluates to "((attributes = H OR name = *.txt) + AND size > 1000)". When in doubt, use parenthesis. + + + + Using time properties requires some extra care. If you want to + retrieve all entries that were last updated on 2009 February 14, + specify "mtime >= 2009-02-14 AND mtime < 2009-02-15". Read this + to say: all files updated after 12:00am on February 14th, until + 12:00am on February 15th. You can use the same bracketing approach to + specify any time period - a year, a month, a week, and so on. + + + + The syntax allows one special case: if you provide a string with no + spaces, it is treated as a pattern to match for the filename. + Therefore a string like "*.xls" will be equivalent to specifying "name + = *.xls". This "shorthand" notation does not work with compound + criteria. + + + + There is no logic in this class that insures that the inclusion + criteria are internally consistent. For example, it's possible to + specify criteria that says the file must have a size of less than 100 + bytes, as well as a size that is greater than 1000 bytes. Obviously + no file will ever satisfy such criteria, but this class does not check + for or detect such inconsistencies. + + + + + + Thrown in the setter if the value has an invalid syntax. + + + + + Indicates whether searches will traverse NTFS reparse points, like Junctions. + + + + + Returns a string representation of the FileSelector object. + + The string representation of the boolean logic statement of the file + selection criteria for this instance. + + + + Returns the names of the files in the specified directory + that fit the selection criteria specified in the FileSelector. + + + + This is equivalent to calling + with recurseDirectories = false. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Returns the names of the files in the specified directory that fit the + selection criteria specified in the FileSelector, optionally recursing + through subdirectories. + + + + This method applies the file selection criteria contained in the + FileSelector to the files contained in the given directory, and + returns the names of files that conform to the criteria. + + + + The name of the directory over which to apply the FileSelector + criteria. + + + + Whether to recurse through subdirectories when applying the file + selection criteria. + + + + A collection of strings containing fully-qualified pathnames of files + that match the criteria specified in the FileSelector instance. + + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + a collection of ZipEntry objects that conform to the criteria. + + + + Retrieve the ZipEntry items in the ZipFile that conform to the specified criteria. + + + + + This method applies the criteria set in the FileSelector instance (as described in + the ) to the specified ZipFile. Using this + method, for example, you can retrieve all entries from the given ZipFile that + have filenames ending in .txt. + + + + Normally, applications would not call this method directly. This method is used + by the ZipFile class. + + + + This overload allows the selection of ZipEntry instances from the ZipFile to be restricted + to entries contained within a particular directory in the ZipFile. + + + + Using the appropriate SelectionCriteria, you can retrieve entries based on size, + time, and attributes. See for a + description of the syntax of the SelectionCriteria string. + + + + + The ZipFile from which to retrieve entries. + + + the directory in the archive from which to select entries. If null, then + all directories in the archive are used. + + + a collection of ZipEntry objects that conform to the criteria. + + + + Summary description for EnumUtil. + + + + + Returns the value of the DescriptionAttribute if the specified Enum + value has one. If not, returns the ToString() representation of the + Enum value. + + The Enum to get the description for + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. + Note: use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + + + + Converts the string representation of the name or numeric value of one + or more enumerated constants to an equivalent enumerated object. A + parameter specified whether the operation is case-sensitive. Note: + use the DescriptionAttribute on enum values to enable this. + + The System.Type of the enumeration. + + A string containing the name or value to convert. + + + Whether the operation is case-sensitive or not. + + + + diff --git a/packages/System.IO.Compression.4.3.0/.signature.p7s b/packages/System.IO.Compression.4.3.0/.signature.p7s new file mode 100644 index 0000000000000000000000000000000000000000..df8920730d7030c118073d2997b2c61edd4d91fa GIT binary patch literal 9483 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

rrXoNN6v@4Lv4311N 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 values that indicate whether a compression operation emphasizes speed or compression size. + + + The compression operation should complete as quickly as possible, even if the resulting file is not optimally compressed. + + + No compression should be performed on the file. + + + The compression operation should be optimally compressed, even if the operation takes a longer time to complete. + + + Specifies whether to compress or decompress the underlying stream. + + + Compresses the underlying stream. + + + Decompresses the underlying stream. + + + Provides methods and properties for compressing and decompressing streams by using the Deflate algorithm. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream is opened and supports reading; otherwise, false. + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were read into the byte array. + The array to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or - The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This operation is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This operation is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + + + Provides methods and properties used to compress and decompress streams. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to write the compressed data to. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to write the compressed data to. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream the compressed or decompressed data is written to. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid enumeration value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream the compressed or decompressed data is written to. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream supports reading and is not closed; otherwise, false. + + + + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were decompressed into the byte array. If the end of the stream has been reached, zero or the number of bytes read is returned. + The array used to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or -The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This property is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This property is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + The write operation cannot be performed because the stream is closed. + + + Represents a package of compressed files in the zip archive format. + + + Initializes a new instance of the class from the specified stream. + The stream that contains the archive to be read. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initializes a new instance of the class from the specified stream and with the specified mode. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initializes a new instance of the class on the specified stream for the specified mode, and optionally leaves the stream open. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + true to leave the stream open after the object is disposed; otherwise, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initializes a new instance of the class on the specified stream for the specified mode, uses the specified encoding for entry names, and optionally leaves the stream open. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + true to leave the stream open after the object is disposed; otherwise, false. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Creates an empty entry that has the specified path and entry name in the zip archive. + An empty entry in the zip archive. + A path, relative to the root of the archive, that specifies the name of the entry to be created. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Creates an empty entry that has the specified entry name and compression level in the zip archive. + An empty entry in the zip archive. + A path, relative to the root of the archive, that specifies the name of the entry to be created. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Releases the resources used by the current instance of the class. + + + Called by the and methods to release the unmanaged resources used by the current instance of the class, and optionally finishes writing the archive and releases the managed resources. + true to finish writing the archive and release unmanaged and managed resources; false to release only unmanaged resources. + + + Gets the collection of entries that are currently in the zip archive. + The collection of entries that are currently in the zip archive. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Retrieves a wrapper for the specified entry in the zip archive. + A wrapper for the specified entry in the archive; null if the entry does not exist in the archive. + A path, relative to the root of the archive, that identifies the entry to retrieve. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Gets a value that describes the type of action the zip archive can perform on entries. + One of the enumeration values that describes the type of action (read, create, or update) the zip archive can perform on entries. + + + Represents a compressed file within a zip archive. + + + Gets the zip archive that the entry belongs to. + The zip archive that the entry belongs to, or null if the entry has been deleted. + + + Gets the compressed size of the entry in the zip archive. + The compressed size of the entry in the zip archive. + The value of the property is not available because the entry has been modified. + + + Deletes the entry from the zip archive. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Gets the relative path of the entry in the zip archive. + The relative path of the entry in the zip archive. + + + Gets or sets the last time the entry in the zip archive was changed. + The last time the entry in the zip archive was changed. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Gets the uncompressed size of the entry in the zip archive. + The uncompressed size of the entry in the zip archive. + The value of the property is not available because the entry has been modified. + + + Gets the file name of the entry in the zip archive. + The file name of the entry in the zip archive. + + + Opens the entry from the zip archive. + The stream that represents the contents of the entry. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Retrieves the relative path of the entry in the zip archive. + The relative path of the entry, which is the value stored in the property. + + + Specifies values for interacting with zip archive entries. + + + Only creating new archive entries is permitted. + + + Only reading archive entries is permitted. + + + Both read and write operations are permitted for archive entries. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/de/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/de/System.IO.Compression.xml new file mode 100644 index 0000000..c665eda --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/de/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Gibt Werte an, die angeben, ob ein Komprimierungsvorgang die Geschwindigkeit oder den Komprimierungsumfang hervorhebt. + + + Der Komprimierungsvorgang soll so schnell wie möglich beendet werden, auch wenn die resultierende Datei nicht optimal komprimiert wird. + + + Bei der Datei sollte keine Komprimierung erfolgen. + + + Der Komprimierungsvorgang soll optimal ausgeführt werden, auch wenn der Vorgang eine längere Zeit in Anspruch nimmt. + + + Gibt an, ob der zugrunde liegende Stream komprimiert oder dekomprimiert werden soll. + + + Komprimiert den zugrunde liegenden Stream. + + + Dekomprimiert den zugrunde liegenden Stream. + + + Stellt Methoden und Eigenschaften zum Komprimieren und Dekomprimieren von Streams mithilfe des Deflate-Algorithmus bereit. + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsgrads. + Der zu komprimierende Stream. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und der Komprimierungsebene und lässt den Stream optional geöffnet. + Der zu komprimierende Stream. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + true, um das Streamobjekt offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsmodus. + Der zu komprimierende oder zu dekomprimierende Stream. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und des Komprimierungsmodus und lässt den Stream optional geöffnet. + Der zu komprimierende oder zu dekomprimierende Stream. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + true, um den Stream offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Ruft einen Verweis auf den zugrunde liegenden Stream ab. + Ein Streamobjekt, das den zugrunde liegenden Stream darstellt. + Der zugrunde liegende Stream ist geschlossen. + + + Ruft einen Wert ab, der angibt, ob der Stream Lesevorgänge unterstützt, während eine Datei dekomprimiert wird. + true, wenn der -Wert Decompress ist und der zugrunde liegende Stream geöffnet ist und Lesevorgänge unterstützt, andernfalls false. + + + Ruft einen Wert, der angibt, ob der Stream Suchvorgänge unterstützt. + false in allen Fällen. + + + Ruft einen Wert, der angibt, ob der Stream Schreibvorgänge unterstützt. + true, wenn der -Wert gleich Compress ist und der zugrunde liegende Stream Schreibvorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + Gibt die von verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. + true, um sowohl verwaltete als auch nicht verwaltete Ressourcen freizugeben, false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Die aktuelle Implementierung dieser Methode hat keine Funktion. + Der Stream ist geschlossen. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Liest eine Anzahl von dekomprimierten Bytes in das angegebene Bytearray. + Die Anzahl von Bytes, die in das Bytearray gelesen wurden. + Das Array zum Speichern von dekomprimierten Bytes. + Das Byteoffset in , an dem die gelesenen Bytes platziert werden. + Die maximale Anzahl der zu lesenden dekomprimierten Bytes. + + ist null. + Der -Wert war Compress, als das Objekt erstellt wurde.- oder - Der zugrunde liegende Stream unterstützt keine Lesevorgänge. + + oder ist kleiner als 0.- oder - Die -Länge minus des Indexausgangspunkts ist kleiner als . + Die Daten haben ein ungültiges Format. + Der Stream ist geschlossen. + + + Dieser Vorgang wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Die Position im Stream. + Einer der -Werte. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Dieser Vorgang wird nicht unterstützt und löst immer eine aus. + Die Länge des Streams. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Schreibt komprimierte Bytes aus dem angegebenen Bytearray in den zugrunde liegenden Stream. + Der Puffer, der die zu komprimierenden Daten enthält. + Das Byteoffset in , aus dem die Bytes gelesen werden. + Die maximale Anzahl der zu schreibenden Bytes. + + + Stellt Methoden und Eigenschaften bereit, die zum Komprimieren und Dekomprimieren von Streams verwendet werden. + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsgrads. + Der Stream, in den die komprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und der Komprimierungsebene und lässt den Stream optional geöffnet. + Der Stream, in den die komprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + true, um das Streamobjekt offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsmodus. + Der Stream, in den die komprimierten oder dekomprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + + ist null. + + ist kein gültiger -Enumerationswert.- oder - ist und ist false.- oder - ist und ist false. + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und des Komprimierungsmodus und lässt den Stream optional geöffnet. + Der Stream, in den die komprimierten oder dekomprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + true, um den Stream offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Ruft einen Verweis auf den zugrunde liegenden Stream ab. + Ein Streamobjekt, das den zugrunde liegenden Stream darstellt. + Der zugrunde liegende Stream ist geschlossen. + + + + + + Ruft einen Wert ab, der angibt, ob der Stream Lesevorgänge unterstützt, während eine Datei dekomprimiert wird. + true, wenn der -Wert gleich Decompress, ist und der zugrunde liegende Stream Lesevorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + + + + Ruft einen Wert, der angibt, ob der Stream Suchvorgänge unterstützt. + false in allen Fällen. + + + Ruft einen Wert, der angibt, ob der Stream Schreibvorgänge unterstützt. + true, wenn der -Wert gleich Compress ist und der zugrunde liegende Stream Schreibvorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + + + + Gibt die von verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. + true, um sowohl verwaltete als auch nicht verwaltete Ressourcen freizugeben, false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Die aktuelle Implementierung dieser Methode hat keine Funktion. + Der Stream ist geschlossen. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Liest eine Anzahl von dekomprimierten Bytes in das angegebene Bytearray. + Die Anzahl der Bytes, die im Bytearray dekomprimiert wurden.Wenn das Ende des Streams erreicht worden ist, wird 0 oder die Anzahl der gelesenen Bytes zurückgegeben. + Das Array, das zum Speichern von dekomprimierten Bytes verwendet wird. + Das Byteoffset in , an dem die gelesenen Bytes platziert werden. + Die maximale Anzahl der zu lesenden dekomprimierten Bytes. + + ist null. + Der -Wert war Compress, als das Objekt erstellt wurde.- oder -Der zugrunde liegende Stream unterstützt keine Lesevorgänge. + + oder ist kleiner als 0.- oder - Die -Länge minus des Indexausgangspunkts ist kleiner als . + Die Daten haben ein ungültiges Format. + Der Stream ist geschlossen. + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Die Position im Stream. + Einer der -Werte. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Die Länge des Streams. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Schreibt komprimierte Bytes aus dem angegebenen Bytearray in den zugrunde liegenden Stream. + Der Puffer, der die zu komprimierenden Daten enthält. + Das Byteoffset in , aus dem die Bytes gelesen werden. + Die maximale Anzahl der zu schreibenden Bytes. + Der Schreibvorgang kann nicht ausgeführt werden, da der Stream geschlossen ist. + + + Stellt ein Paket komprimierter Dateien im Zip-Archiv-Format dar. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream. + Ein Stream, der das zu lesende Archiv enthält. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initialisiert eine neue Instanz der -Klasse aus dem angegebenen Stream und mit dem angegebenen Modus. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream und den angegebenen Modus und lässt den Stream optional geöffnet. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + true, um den Datenstrom geöffnet zu lassen, nach dem das -Objekt freigegeben wurde; andernfalls false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream und den angegebenen Modus und verwendet dabei die angegebene Codierung für Eintragsnamen und lässt den Stream optional geöffnet. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + true, um den Datenstrom geöffnet zu lassen, nach dem das -Objekt freigegeben wurde; andernfalls false. + Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen in diesem Archiv verwendet werden soll.Geben Sie einen Wert für diesen Parameter nur an, wenn eine Codierung für die Interoperabilität mit ZIP-Archiv-Tools und -Bibliotheken erforderlich ist, die die UTF-8-Codierung für Eintragsnamen nicht unterstützen. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Erstellt einen leeren Eintrag, der den angegebenen Pfad und Eintragsnamen im ZIP-Archiv Ebene verwendet. + Ein leerer Eintrag im ZIP-Archiv. + Ein Pfad relativ zum Stamm des Archivs, der den Namen des Eintrags angibt, der erstellt werden soll. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Erstellt einen leeren Eintrag, der den angegebenen Eintragsnamen und die Komprimierung im ZIP-Archiv Ebene verwendet. + Ein leerer Eintrag im ZIP-Archiv. + Ein Pfad relativ zum Stamm des Archivs, der den Namen des Eintrags angibt, der erstellt werden soll. + Einer der Enumerationswerte, der angibt, ob Geschwindigkeit oder Komprimierungseffektivität priorisiert wird, wenn der Eintrag erstellt. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Gibt alle von der aktuellen Instanz der -Klasse verwendeten Ressourcen frei. + + + Wird von den und -Methoden aufgerufen, um die nicht verwalteten Ressourcen freizugeben, die von der aktuellen Instanz der -Klasse verwendet werden, und beendet optional das Schreiben ins Archiv und gibt die verwalteten Ressourcen frei. + true, um das Schreiben des Archivs abzuschließen und sowohl nicht verwaltete als auch verwaltete Ressourcen freizugeben; false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Ruft die Auflistung von Einträgen ab, die das ZIP-Archiv momentan enthält. + Die Auflistung von Einträgen, die das ZIP-Archiv momentan enthält. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ruft einen Wrapper für den angegebenen Eintrag im Zip-Archiv ab. + Ein Wrapper für den angegebenen Eintrag im Archiv. null, wenn der Eintrag nicht im Archiv vorhanden ist. + Ein Pfad relativ zum Stamm des Archivs, das den Eintrag identifiziert, der abgerufen werden soll. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ruft einen Wert ab, der den Typ der Aktion beschreibt, die das ZIP-Archiv für Einträge ausführen kann. + Einer der Enumerationswerte, der den Typ der Aktion (Lesen, Erstellen oder Update) beschreibt, die das Zip-Archiv bei Einträgen ausführen kann. + + + Stellt eine komprimierte Datei in einem Zip-Archiv dar. + + + Ruft das Zip-Archiv ab, zu dem der Eintrag gehört. + Das Zip-Archiv, zu dem der Eintrag gehört, oder null, wenn der Eintrag gelöscht wurde. + + + Ruft die komprimierte Größe des unkomprimierten Eintrags im ZIP-Archiv ab. + Die Größe des komprimierten Eintrags im ZIP-Archiv. + The value of the property is not available because the entry has been modified. + + + Löscht den Eintrag aus dem Zip-Archiv. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Ruft den relativen Pfad des Eintrags im ZIP-Archiv ab. + Der relative Pfad des Eintrags im Zip-Archiv. + + + Ruft den letzten Zeitpunkt ab, zu dem der Eintrag im Zip-Archiv geändert wurde, oder legt diesen fest. + Der letzte Zeitpunkt, an dem der Eintrag im ZIP-Archiv geändert wurde. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Ruft die Größe des unkomprimierten Eintrags im ZIP-Archiv ab. + Die Größe des unkomprimierten Eintrags im ZIP-Archiv. + The value of the property is not available because the entry has been modified. + + + Ruft den Dateinamen des Eintrags im ZIP-Archiv ab. + Der Dateiname des Eintrags im ZIP-Archiv. + + + Öffnet den Eintrag aus dem Zip-Archiv. + Der Stream, der den Inhalt des Eintrags darstellt. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Ruft den relativen Pfad des Eintrags im Zip-Archiv ab. + Der relative Pfad des Eintrags, der in der -Eigenschaft gespeichert ist. + + + Gibt Werte für die Interaktion mit Zip-Archiveinträgen an. + + + Nur das Erstellen neuer Archiveinträge ist zulässig. + + + Nur das Lesen von Archiveinträgen ist zulässig. + + + Lese- und Schreibvorgänge sind für die Archiveinträge zulässig. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/es/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/es/System.IO.Compression.xml new file mode 100644 index 0000000..7c623af --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/es/System.IO.Compression.xml @@ -0,0 +1,420 @@ + + + + System.IO.Compression + + + + Especifica valores que indican si una operación de compresión hace hincapié en la velocidad o en el tamaño de la compresión. + + + La operación de compresión debe completarse lo antes posible, aunque el archivo resultante no esté comprimido de forma óptima. + + + No debe comprimirse el archivo. + + + La operación de compresión se debe comprimir de forma óptima, incluso aunque la operación tarde más tiempo en completarse. + + + Especifica si se comprime o descomprime la secuencia subyacente. + + + Comprime la secuencia subyacente. + + + Descomprime la secuencia subyacente. + + + Proporciona métodos y propiedades para comprimir y descomprimir secuencias usando el algoritmo Deflate. + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados. + Secuencia que se va a comprimir. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia que se va a comprimir. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + true para mantener el objeto de secuencia abierto después de desechar el objeto ; en caso contrario, false. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados. + Secuencia que se va a comprimir o descomprimir. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia que se va a comprimir o descomprimir. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + true para mantener la secuencia abierta después de desechar el objeto ; en caso contrario, false. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Obtiene una referencia a la secuencia subyacente. + Un objeto de secuencia que representa la secuencia subyacente. + La secuencia subyacente está cerrada. + + + Obtiene un valor que indica si la secuencia admite operaciones de lectura mientras se descomprime un archivo. + Es true si el valor es Decompress, y la secuencia subyacente está abierta y admite operaciones de lectura; de lo contrario, es false. + + + Obtiene un valor que indica si la secuencia admite operaciones de búsqueda. + false en todos los casos. + + + Obtiene un valor que indica si la secuencia admite operaciones de escritura. + true si el valor de es Compress y la secuencia subyacente admite operaciones de escritura y no está cerrada; en caso contrario, false. + + + Libera los recursos no administrados que usa y libera los recursos administrados de forma opcional. + Es true para liberar tanto recursos administrados como no administrados; es false para liberar únicamente recursos no administrados. + + + La implementación actual de este método no tiene funcionalidad. + La secuencia está cerrada. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Introduce varios bytes descomprimidos leídos en la matriz de bytes especificada. + Número de bytes leídos de la matriz de bytes. + Matriz para almacenar los bytes descomprimidos. + Desplazamiento de bytes en donde se colocarán los bytes leídos. + Número máximo de bytes descomprimidos que se van a leer. + El valor de es null. + El valor era Compress cuando se creó el objeto.o bien La secuencia subyacente no admite operaciones de lectura. + + o es menor que cero.o bien longitud menos el punto inicial del índice es menor que . + El formato de los datos no es válido. + La secuencia está cerrada. + + + Esta operación no se admite y siempre produce una excepción . + Un valor largo. + Ubicación en la secuencia. + Uno de los valores de . + Esta propiedad no se admite en esta secuencia. + + + Esta operación no se admite y siempre produce una excepción . + Longitud de la secuencia. + Esta propiedad no se admite en esta secuencia. + + + Escribe los bytes comprimidos en la secuencia subyacente de la matriz de bytes especificada. + Búfer que contiene los datos que se van a comprimir. + Desplazamiento de bytes en donde se leerán los bytes. + Número máximo de bytes que se pueden escribir. + + + Proporciona los métodos y propiedades que permiten comprimir y descomprimir secuencias. + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados. + Secuencia en la que se van a escribir los datos comprimidos. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia en la que se van a escribir los datos comprimidos. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + true para mantener el objeto de secuencia abierto después de desechar el objeto ; en caso contrario, false. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados. + Secuencia en la que se escriben los datos comprimidos o descomprimidos. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + El valor de es null. + + no es válida valor de enumeración.o bien es y es false.o bien es y es false. + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia en la que se escriben los datos comprimidos o descomprimidos. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + true para mantener la secuencia abierta después de desechar el objeto ; en caso contrario, false. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Obtiene una referencia a la secuencia subyacente. + Un objeto de secuencia que representa la secuencia subyacente. + La secuencia subyacente está cerrada. + + + + + + Obtiene un valor que indica si la secuencia admite operaciones de lectura mientras se descomprime un archivo. + true si el valor de es Decompress, y la secuencia subyacente admite operaciones de lectura y no está cerrada; en caso contrario, false. + + + + + + Obtiene un valor que indica si la secuencia admite operaciones de búsqueda. + false en todos los casos. + + + Obtiene un valor que indica si la secuencia admite operaciones de escritura. + true si el valor de es Compress y la secuencia subyacente admite operaciones de escritura y no está cerrada; en caso contrario, false. + + + + + + Libera los recursos no administrados que usa y libera los recursos administrados de forma opcional. + Es true para liberar tanto recursos administrados como no administrados; es false para liberar únicamente recursos no administrados. + + + La implementación actual de este método no tiene funcionalidad. + La secuencia está cerrada. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Introduce varios bytes descomprimidos leídos en la matriz de bytes especificada. + El número de bytes que se han descomprimido en la matriz de bytes.Si se ha llegado al final de la secuencia, se devuelve cero o el número de bytes leídos. + Matriz que se utiliza para almacenar los bytes descomprimidos. + Desplazamiento de bytes en donde se colocarán los bytes leídos. + Número máximo de bytes descomprimidos que se van a leer. + El valor de es null. + El valor era Compress cuando se creó el objeto.o bienLa secuencia subyacente no admite operaciones de lectura. + + o es menor que cero.o bien longitud menos el punto inicial del índice es menor que . + El formato de los datos no es válido. + La secuencia está cerrada. + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Ubicación en la secuencia. + Uno de los valores de . + Esta propiedad no se admite en esta secuencia. + + + Esta propiedad no se admite y siempre produce una excepción . + Longitud de la secuencia. + Esta propiedad no se admite en esta secuencia. + + + Escribe los bytes comprimidos en la secuencia subyacente de la matriz de bytes especificada. + Búfer que contiene los datos que se van a comprimir. + Desplazamiento de bytes en donde se leerán los bytes. + Número máximo de bytes que se pueden escribir. + La operación de escritura no se puede realizar porque la secuencia está cerrada. + + + Representa un paquete de archivos comprimidos en formato de archivo zip. + + + Inicializa una nueva instancia de la clase a partir de la secuencia especificada. + Secuencia que contiene el archivo que se va a leer. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Inicializa una nueva instancia de la clase a partir de la secuencia especificada y con el modo especificado. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inicializa una nueva instancia de la clase en el flujo especificado para el modo especificado y, opcionalmente, deja el flujo abierto. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + true para dejar el flujo abierto después de desechar el objeto ; de lo contrario, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inicializa una nueva instancia de la clase en el flujo especificado para el modo especificado, usa la codificación especificada para los nombres de entrada y opcionalmente deja el flujo abierto. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + true para dejar el flujo abierto después de desechar el objeto ; de lo contrario, false. + Codificación que se va a usar al leer o escribir nombres de entrada en este archivo.Especifique un valor para este parámetro únicamente cuando se necesite una codificación para la interoperabilidad con herramientas y bibliotecas de archivos zip que no admiten la codificación UTF-8 para los nombres de entrada. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crea una entrada vacía en el archivo zip con la ruta de acceso y el nombre de entrada especificados. + Una entrada vacía en el archivo zip. + Ruta de acceso, relativa a la raíz del archivo, que especifica el nombre de la entrada que se va a crear. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crea una entrada vacía en el archivo zip con el nombre de entrada y el nivel de compresión especificados. + Una entrada vacía en el archivo zip. + Ruta de acceso, relativa a la raíz del archivo, que especifica el nombre de la entrada que se va a crear. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Libera los recursos utilizados por la instancia actual de la clase . + + + Llamado por los métodos y para liberar los recursos no administrados utilizados por la instancia actual de la clase de , y termina opcionalmente de escribir el archivo y libera los recursos administrados. + true para terminar de escribir el archivo y liberar recursos no administrados y administrados; false para liberar solo recursos no administrados. + + + Obtiene la colección de entradas que están actualmente en el archivo zip. + La colección de entradas que están actualmente en el archivo zip. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Recupera un contenedor para la entrada especificada en el archivo zip. + Un contenedor para la entrada especificada en el archivo; null si la entrada no existe en el archivo. + Ruta de acceso, relativa a la raíz del archivo, que identifica la entrada a recuperar. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Obtiene un valor que describe el tipo de acción que el archivo zip puede realizar en las entradas. + Uno de los valores de enumeración que describe el tipo de acción (lectura, creación o actualización) que puede realizar el archivo zip en las entradas. + + + Representa un archivo comprimido incluido en un archivo zip. + + + Obtiene el archivo zip al que pertenece la entrada. + El archivo zip al que pertenece la entrada o null si se ha eliminado la entrada. + + + Obtiene el tamaño comprimido de la entrada en el archivo zip. + Tamaño comprimido de la entrada en el archivo zip. + The value of the property is not available because the entry has been modified. + + + Elimina la entrada del archivo zip. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Obtiene la ruta de acceso relativa de la entrada en el archivo zip. + Ruta de acceso relativa de la entrada en el archivo zip. + + + Obtiene o establece la última vez que se cambió la entrada en el archivo zip. + Última vez que la entrada del archivo zip se cambió. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Obtiene el tamaño descomprimido de la entrada en el archivo zip. + Tamaño descomprimido de la entrada en el archivo zip. + The value of the property is not available because the entry has been modified. + + + Obtiene el nombre de archivo de la entrada en el archivo zip. + Nombre de archivo de la entrada en el archivo zip. + + + Abre la entrada desde el archivo zip. + La secuencia que representa el contenido de la entrada. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Recupera la ruta de acceso relativa de la entrada en el archivo zip. + La ruta de acceso relativa de la entrada, que es el valor almacenado en la propiedad . + + + Especifica los valores para interactuar con entradas de archivo zip. + + + Solo se permite crear nuevas entradas de archivo. + + + Solo se permite leer entradas del archivo. + + + Ambas operaciones de lectura y escritura se permiten para las entradas del archivo. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/fr/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/fr/System.IO.Compression.xml new file mode 100644 index 0000000..c26ff35 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/fr/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Spécifie les valeurs qui indiquent si une opération de compression souligne la rapidité ou la taille de compression. + + + L'opération de compression doit s'exécuter aussi rapidement que possible, même si le fichier résultant n'est pas compressé de manière optimale. + + + Aucune compression ne doit être exécutée sur le fichier. + + + L'opération de compression doit être compressée de manière optimale, même si elle prend plus de temps. + + + Spécifie s'il faut compresser ou décompresser le flux sous-jacent. + + + Compresse le flux sous-jacent. + + + Décompresse le flux sous-jacent. + + + Fournit des méthodes et des propriétés pour compresser et décompresser des flux à l'aide de l'algorithme Deflate. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés. + Flux à compresser. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux à compresser. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + true pour maintenir l'objet de flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés. + Flux à compresser ou à décompresser. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux à compresser ou à décompresser. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Obtient une référence au flux sous-jacent. + Objet de flux qui représente le flux sous-jacent. + Le flux sous-jacent est fermé. + + + Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. + true si la valeur est Decompress, que le flux sous-jacent est ouvert et qu'il prend en charge la lecture ; sinon, false. + + + Obtient une valeur indiquant si le flux prend en charge la recherche. + false dans tous les cas. + + + Obtient une valeur indiquant si le flux prend en charge l'écriture. + true si la valeur de est Compress, que le flux sous-jacent prend en charge l'écriture et qu'il n'est pas fermé ; sinon, false. + + + Libère les ressources non managées utilisées par et libère éventuellement les ressources managées. + true pour libérer les ressources managées et non managées ; false pour ne libérer que les ressources non managées. + + + L'implémentation actuelle de cette méthode n'a aucune fonctionnalité. + Le flux est fermé. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. + Nombre d'octets qui ont été lus dans le tableau d'octets. + Tableau utilisé pour stocker les octets décompressés. + Dans , décalage d'octet auquel les octets lus seront placés. + Nombre maximal d'octets décompressés à lire. + + a la valeur null. + La valeur était Compress lorsque l'objet a été créé.ou Le flux sous-jacent ne prend pas en charge la lecture. + + ou est inférieur à zéro.ouLa longueur de moins le point de départ de l'index est inférieure à . + Le format des données n'est pas valide. + Le flux est fermé. + + + Cette opération n'est pas prise en charge et lève toujours . + Valeur Long. + Emplacement dans le flux. + Une des valeurs de . + Cette propriété n'est pas prise en charge sur ce flux. + + + Cette opération n'est pas prise en charge et lève toujours . + Longueur du flux. + Cette propriété n'est pas prise en charge sur ce flux. + + + Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. + Mémoire tampon qui contient les données à compresser. + Dans , décalage d'octet à partir duquel les octets seront lus. + Nombre maximal d'octets à écrire. + + + Fournit les méthodes et les propriétés utilisées pour compresser et décompresser des flux. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés. + Flux dans lequel écrire les données compressées. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux dans lequel écrire les données compressées. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + true pour maintenir l'objet de flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés. + Flux dans lequel les données compressées ou décompressées sont écrites. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + + a la valeur null. + + n'est pas une valeur d'énumération valide.ou est et est false.ou est et est false. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux dans lequel les données compressées ou décompressées sont écrites. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Obtient une référence au flux sous-jacent. + Objet de flux qui représente le flux sous-jacent. + Le flux sous-jacent est fermé. + + + + + + Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. + true si la valeur de est Decompress,, que le flux sous-jacent prend en charge la lecture et qu'il n'est pas fermé ; sinon, false. + + + + + + Obtient une valeur indiquant si le flux prend en charge la recherche. + false dans tous les cas. + + + Obtient une valeur indiquant si le flux prend en charge l'écriture. + true si la valeur de est Compress, que le flux sous-jacent prend en charge l'écriture et qu'il n'est pas fermé ; sinon, false. + + + + + + Libère les ressources non managées utilisées par l'objet et libère éventuellement les ressources managées. + true pour libérer les ressources managées et non managées ; false pour ne libérer que les ressources non managées. + + + L'implémentation actuelle de cette méthode n'a aucune fonctionnalité. + Le flux est fermé. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. + Nombre d'octets qui ont été décompressés dans le tableau d'octets.Si la fin du flux a été atteinte, zéro ou le nombre d'octets lus est retourné. + Tableau utilisé pour décompresser les octets. + Dans , décalage d'octet auquel les octets lus seront placés. + Nombre maximal d'octets décompressés à lire. + + a la valeur null. + La valeur était Compress lorsque l'objet a été créé.ouLe flux sous-jacent ne prend pas en charge la lecture. + + ou est inférieur à zéro.ouLa longueur de moins le point de départ de l'index est inférieure à . + Le format des données n'est pas valide. + Le flux est fermé. + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Emplacement dans le flux. + Une des valeurs de . + Cette propriété n'est pas prise en charge sur ce flux. + + + Cette propriété n'est pas prise en charge et lève toujours . + Longueur du flux. + Cette propriété n'est pas prise en charge sur ce flux. + + + Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. + Mémoire tampon qui contient les données à compresser. + Dans , décalage d'octet à partir duquel les octets seront lus. + Nombre maximal d'octets à écrire. + L'opération d'écriture ne peut pas être exécutée car le flux est fermé. + + + Représente un package de fichiers compressés au format d'archivage zip. + + + Initialise une nouvelle instance de la classe à partir du flux spécifié. + Flux qui contient l'archive à lire. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initialise une nouvelle instance de la classe à partir du flux spécifié et avec le mode spécifié. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialise une nouvelle instance de la classe sur le flux de données spécifié pour le mode spécifié, et laisse éventuellement le flux ouvert. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialise une nouvelle instance de la classe sur le flux spécifié pour le mode spécifié, utilise l'encodage spécifié pour les noms d'entrée, et permet éventuellement de laisser le flux ouvert. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + Encodage à utiliser lors de la lecture ou de l'écriture des noms d'entrée dans cette archive.Spécifie une valeur pour ce paramètre seulement quand un encodage est obligatoire pour l'interopérabilité avec les outils et les bibliothèques d'archivage zip qui ne prennent pas en charge l'encodage UTF-8 pour les noms d'entrée. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crée une entrée vide qui a le chemin d'accès et le nom d'entrée spécifiés dans l'archive zip. + Entrée vide dans l'archive zip. + Chemin d'accès relatif à la racine de l'archive, qui spécifie le nom de l'entrée à créer. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crée une entrée vide qui a le nom d'entrée et le niveau de compression spécifiés dans l'archive zip. + Entrée vide dans l'archive zip. + Chemin d'accès relatif à la racine de l'archive, qui spécifie le nom de l'entrée à créer. + Une des valeurs d'énumération qui indique s'il faut privilégier la rapidité ou l'efficacité de la compression lors de la création de l'entrée. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Libère les ressources utilisées par l'instance actuelle de la classe . + + + Appelée par les méthodes et pour libérer les ressources non managées utilisées par l'instance actuelle de la classe , et éventuellement finit d'écrire l'archive et libère les ressources managées. + true pour finir l'écriture de l'archive et libérer les ressources managées et non managées ; false pour libérer seulement des ressources non managées. + + + Obtient la collection d'entrées figurant actuellement dans l'archive zip. + Collection d'entrées figurant actuellement dans l'archive zip. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Récupère un wrapper pour l'entrée spécifiée dans l'archive zip. + Wrapper pour l'entrée spécifiée dans l'archive ; null si l'entrée n'existe pas dans l'archive. + Chemin d'accès relatif à la racine de l'archive, qui identifie l'entrée à récupérer. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Obtient une valeur qui décrit le type d'action que l'archive zip peut effectuer sur des entrées. + Une des valeurs d'énumération qui décrit le type d'action (lecture, création ou mise à jour) que l'archive zip peut effectuer sur les entrées. + + + Représente un fichier compressé dans une archive zip. + + + Obtient l'archive zip à laquelle l'entrée appartient. + Archive zip à laquelle l'entrée appartient, ou null si l'entrée a été supprimée. + + + Obtient la taille compressée de l'entrée dans l'archive zip. + Taille compressée de l'entrée dans l'archive zip. + The value of the property is not available because the entry has been modified. + + + Supprime l'entrée de l'archive zip. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Obtient le chemin d'accès relatif de l'entrée dans l'archive zip. + Chemin d'accès relatif de l'entrée dans l'archive zip. + + + Obtient ou définit la date de dernière modification de l'entrée dans l'archive zip. + Date/heure à laquelle l'entrée a été modifiée pour la dernière fois dans l'archive zip. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Obtient la taille décompressée de l'entrée dans l'archive zip. + Taille décompressée de l'entrée dans l'archive zip. + The value of the property is not available because the entry has been modified. + + + Obtient le nom du fichier de l'entrée dans l'archive zip. + Nom de fichier de l'entrée dans l'archive zip. + + + Ouvre l'entrée à partir de l'archive zip. + Flux qui représente le contenu de l'entrée. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Récupère le chemin d'accès relatif de l'entrée dans l'archive zip. + Chemin d'accès relatif de l'entrée, qui est la valeur stockée dans la propriété . + + + Spécifie les valeurs pour interagir avec les entrées d'archive ZIP. + + + Seule la création de nouvelles entrées d'archivage est autorisée. + + + Seule la lecture des entrées d'archivage est autorisée. + + + Les opérations de lecture et d'écriture sont autorisées pour les entrées d'archivage. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/it/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/it/System.IO.Compression.xml new file mode 100644 index 0000000..65f1d34 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/it/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Specifica i valori che indicano se un'operazione di compressione privilegia le dimensioni di compressione o la velocità. + + + L'operazione di compressione deve essere completata il più rapidamente possibile, anche se il file risultante non è compresso in modo ottimale. + + + Non deve essere eseguita alcuna compressione del file. + + + L'operazione di compressione deve essere compressa in modo ottimale, anche se l'operazione richiede più tempo per il completamento. + + + Specifica se comprimere o decomprimere il flusso sottostante. + + + Comprime il flusso sottostante. + + + Decomprime il flusso sottostante. + + + Fornisce metodi e proprietà per la compressione e la decompressione dei flussi mediante l'algoritmo Deflate. + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. + Flusso da comprimere. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. Facoltativamente mantiene aperto il flusso. + Flusso da comprimere. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + true per mantenere l'oggetto flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. + Flusso da comprimere o decomprimere. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. Facoltativamente mantiene aperto il flusso. + Flusso da comprimere o decomprimere. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Ottiene un riferimento al flusso sottostante. + Oggetto flusso che rappresenta il flusso sottostante. + Il flusso sottostante è chiuso. + + + Ottiene un valore che indica se il flusso supporta la lettura durante la decompressione di un file. + true se il valore di è Decompress e il flusso sottostante è aperto e supporta la lettura; in caso contrario, false. + + + Ottiene un valore che indica se il flusso supporta la ricerca. + false in tutti i casi. + + + Ottiene un valore che indica se il flusso supporta la scrittura. + true se il valore di è Compress e il flusso sottostante non è chiuso e supporta la scrittura; in caso contrario, false. + + + Rilascia le risorse non gestite usate da e, facoltativamente, le risorse gestite. + true per rilasciare sia le risorse gestite sia quelle non gestite; false per rilasciare solo le risorse non gestite. + + + L'implementazione corrente di questo metodo non presenta alcuna funzionalità. + Il flusso è chiuso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Legge un numero di byte decompressi nella matrice di byte specificata. + Numero di byte letti nella matrice di byte. + Matrice per archiviare i byte decompressi. + Offset dei byte in in corrispondenza del quale cui verranno inseriti i byte letti. + Numero massimo di byte decompressi da leggere. + + è null. + Al momento della creazione dell'oggetto, il valore di era Compress.-oppure- Il flusso sottostante non supporta la lettura. + + o è minore di zero.-oppure-La lunghezza di meno il punto iniziale dell'indice è minore di . + Il formato dei dati non è valido. + Il flusso è chiuso. + + + Questa operazione non è supportata e genera sempre un'eccezione . + Valore long. + Posizione all'interno del flusso. + Uno dei valori di . + Questa proprietà non è supportata su questo flusso. + + + Questa operazione non è supportata e genera sempre un'eccezione . + Lunghezza del flusso. + Questa proprietà non è supportata su questo flusso. + + + Scrive i byte compressi nel flusso sottostante dalla matrice di byte specificata. + Buffer contenente i dati da comprimere. + Offset dei byte in da cui verranno letti i byte. + Numero massimo di byte da scrivere. + + + Fornisce i metodi e le proprietà usate per comprimere e decomprimere i flussi. + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. + Flusso in cui scrivere i dati compressi. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. Facoltativamente mantiene aperto il flusso. + Flusso in cui scrivere i dati compressi. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + true per mantenere l'oggetto flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. + Flusso in cui vengono scritti i dati compressi e decompressi. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + + è null. + + non è un valore dell'enumerazione valido.-oppure- è e è false.-oppure- è e è false. + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. Facoltativamente mantiene aperto il flusso. + Flusso in cui vengono scritti i dati compressi e decompressi. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Ottiene un riferimento al flusso sottostante. + Oggetto flusso che rappresenta il flusso sottostante. + Il flusso sottostante è chiuso. + + + + + + Ottiene un valore che indica se il flusso supporta la lettura durante la decompressione di un file. + true se il valore di è Decompress, e il flusso sottostante non è chiuso e supporta la lettura; in caso contrario, false. + + + + + + Ottiene un valore che indica se il flusso supporta la ricerca. + false in tutti i casi. + + + Ottiene un valore che indica se il flusso supporta la scrittura. + true se il valore di è Compress e il flusso sottostante non è chiuso e supporta la scrittura; in caso contrario, false. + + + + + + Rilascia le risorse non gestite usate da e, facoltativamente, le risorse gestite. + true per rilasciare sia le risorse gestite sia quelle non gestite; false per rilasciare solo le risorse non gestite. + + + L'implementazione corrente di questo metodo non presenta alcuna funzionalità. + Il flusso è chiuso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Legge un numero di byte decompressi nella matrice di byte specificata. + Numero di byte decompressi nella matrice di byte.Se è stata raggiunta la fine del flusso, viene restituito zero o il numero di byte letto. + Matrice usata per archiviare i byte decompressi. + Offset dei byte in in corrispondenza del quale cui verranno inseriti i byte letti. + Numero massimo di byte decompressi da leggere. + + è null. + Al momento della creazione dell'oggetto, il valore di era Compress.-oppure-Il flusso sottostante non supporta la lettura. + + o è minore di zero.-oppure-La lunghezza di meno il punto iniziale dell'indice è minore di . + Il formato dei dati non è valido. + Il flusso è chiuso. + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Posizione all'interno del flusso. + Uno dei valori di . + Questa proprietà non è supportata su questo flusso. + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Lunghezza del flusso. + Questa proprietà non è supportata su questo flusso. + + + Scrive i byte compressi nel flusso sottostante dalla matrice di byte specificata. + Buffer contenente i dati da comprimere. + Offset dei byte in da cui verranno letti i byte. + Numero massimo di byte da scrivere. + Non è possibile eseguire l'operazione di scrittura perché il flusso è chiuso. + + + Rappresenta un pacchetto di file compressi nel formato di archiviazione ZIP. + + + Inizializza una nuova istanza della classe dal flusso specificato. + Flusso che contiene l'archivio da leggere. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Inizializza una nuova istanza della classe dal flusso specificato e con la modalità specificata. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inizializza una nuova istanza della classe sulla base del flusso specificato per la modalità specificata e, facoltativamente, mantiene aperto il flusso. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inizializza una nuova istanza della classe sulla base del flusso specificato per la modalità specificata. Usa la codifica specificata per i nomi delle voci e, facoltativamente, mantiene aperto il flusso. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + La codifica da usate durante la lettura o la scrittura dei nomi delle voci in questo archivio.Specificare un valore per il parametro solo quando una codifica è obbligatoria per l'interoperabilità con gli strumenti e le librerie dell'archivio ZIP che non supportano la codifica UTF-8 per i nomi di voce. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crea una voce vuota con il percorso e il nome della voce specificati nell'archivio ZIP. + Voce vuota nell'archivio ZIP. + Percorso, relativo alla radice dell'archivio, che specifica il nome della voce da creare. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crea una voce vuota con il livello di compressione e il nome voce specificati nell'archivio ZIP. + Voce vuota nell'archivio ZIP. + Percorso, relativo alla radice dell'archivio, che specifica il nome della voce da creare. + Uno dei valori di enumerazione che indica se privilegiare la velocità o l'efficacia di compressione quando si crea la voce. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Rilascia le risorse usate dall'istanza corrente della classe . + + + Viene chiamato dai metodi e per rilasciare le risorse non gestite usate dall'istanza corrente della classe e, facoltativamente, completa la scrittura dell'archivio e rilascia le risorse gestite. + true per completare la scrittura dell'archivio e rilasciare le risorse gestite e non gestite; false per rilasciare solo le risorse non gestite. + + + Ottiene la raccolta di voci attualmente presenti nell'archivio ZIP. + La raccolta di voci attualmente presenti nell'archivio ZIP. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Recupera un wrapper per la voce specificata nell'archivio ZIP. + Wrapper per la voce specificata nell'archivio; null se la voce non esiste nell'archivio. + Percorso, relativo alla radice dell'archivio, che identifica la voce da recuperare. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ottiene un valore che descrive il tipo di azione che l'archivio ZIP può eseguire sulle voci. + Uno dei valori di enumerazione che descrive il tipo di azione (leggere, creare o aggiornare) che l'archivio ZIP può eseguire sulle voci. + + + Rappresenta un file compresso in un archivio ZIP. + + + Ottiene l'archivio ZIP cui appartiene la voce. + Archivio ZIP cui appartiene la voce o null se la voce è stata eliminata. + + + Ottiene la dimensione compressa della voce nell'archivio ZIP. + La dimensione compressa della voce nell'archivio ZIP. + The value of the property is not available because the entry has been modified. + + + Elimina la voce dall'archivio ZIP. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Ottiene il percorso relativo della voce nell'archivio ZIP. + Percorso relativo della voce nell'archivio ZIP. + + + Ottiene o imposta l'ultima volta in cui la voce nell'archivio ZIP è stata modificata. + L'ultima volta in cui la voce nell'archivio ZIP è stata modificata. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Ottiene la dimensione non compressa della voce nell'archivio ZIP. + Dimensione non compressa della voce nell'archivio ZIP. + The value of the property is not available because the entry has been modified. + + + Ottiene il nome file della voce nell'archivio ZIP. + Nome file della voce nell'archivio ZIP. + + + Apre la voce dall'archivio ZIP. + Flusso che rappresenta il contenuto della voce. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Recupera il percorso relativo della voce nell'archivio ZIP. + Percorso relativo della voce, ovvero il valore archiviato nella proprietà . + + + Specifica i valori per l'interazione con le voci dell'archivio ZIP. + + + È consentita solo la creazione di nuove voci dell'archivio. + + + È consentita solo la lettura delle voci dell'archivio. + + + Sono consentite sia operazioni in lettura che in scrittura per le voci dell'archivio. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/ja/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/ja/System.IO.Compression.xml new file mode 100644 index 0000000..5a11299 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/ja/System.IO.Compression.xml @@ -0,0 +1,446 @@ + + + + System.IO.Compression + + + + 圧縮操作で速度または圧縮サイズのどちらを重視するかどうかを示す値を指定します。 + + + 圧縮後のファイルは最適な圧縮ではなくても、圧縮操作はできるだけ迅速に完了する必要があります。 + + + ファイルに対して圧縮を行いません。 + + + 圧縮操作の操作が完了するまでに時間がかかりますが、圧縮操作は最適に圧縮する必要があります。 + + + 基になるストリームを圧縮するのか、または圧縮解除するのかを指定します。 + + + 基になるストリームを圧縮します。 + + + 基になるストリームを圧縮解除します。 + + + Deflate アルゴリズムを使用してストリームを圧縮および圧縮解除するためのメソッドとプロパティを提供します。 + + + 指定したストリームと圧縮レベルを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮するストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮レベルを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮するストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリーム オブジェクトを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮モードを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮または圧縮解除するストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 指定したストリームと圧縮モードを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮または圧縮解除するストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 基になるストリームへの参照を取得します。 + 基になるストリームを表すストリーム オブジェクト。 + 基になるストリームが閉じられました。 + + + ファイルの圧縮解除中にストリームが読み取りをサポートするかどうかを示す値を取得します。 + + 値が Decompress で、基になるストリームが開いており、読み取りをサポートしている場合は true。それ以外の場合は false。 + + + ストリームがシークをサポートしているかどうかを示す値を取得します。 + 常に false。 + + + ストリームが書き込みをサポートしているかどうかを示す値を取得します。 + + 値が Compress で、基になるストリームが書き込みをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + で使用されているアンマネージ リソースを解放し、オプションでマネージ リソースを解放します。 + マネージ リソースとアンマネージ リソースの両方を解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在実装されているこのメソッドは、何の機能も提供しません。 + ストリームが閉じられました。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + 圧縮解除されたバイト数を、指定したバイト配列に読み取ります。 + バイト配列に読み取られたバイト数。 + 圧縮解除されたバイトを格納するための配列。 + 読み取られるバイトが配置される 内のバイト オフセット。 + 読み取られる、圧縮解除されたバイトの最大数。 + + は null です。 + オブジェクトが作成されたとき、 値が Compress でした。または 基になるストリームが読み取りをサポートしていません。 + + または が 0 未満です。または の長さからインデックスの開始点を引いた値が 未満です。 + データ形式が無効です。 + ストリームが閉じられました。 + + + この操作はサポートされていないため、常に をスローします。 + long 値。 + ストリーム内の位置。 + + 値の 1 つ。 + このストリームでは、このプロパティはサポートされていません。 + + + この操作はサポートされていないため、常に をスローします。 + ストリーム長。 + このストリームでは、このプロパティはサポートされていません。 + + + 圧縮されたバイトを、指定したバイト配列から基になるストリームに書き込みます。 + 圧縮するデータを格納しているバッファー。 + バイトの読み取り元となる 内のバイト オフセット。 + 書き込む最大バイト数。 + + + ストリームの圧縮および圧縮解除を実行するために使用するメソッドとプロパティを提供します。 + + + 指定したストリームと圧縮レベルを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮されたデータを書き込むストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮レベルを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮されたデータを書き込むストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリーム オブジェクトを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮モードを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮されたデータまたは圧縮解除されたデータが書き込まれるストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + は null です。 + + が有効な 列挙値ではありません。または で、 が false です。または で、 が false です。 + + + 指定したストリームと圧縮モードを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮されたデータまたは圧縮解除されたデータが書き込まれるストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 基になるストリームへの参照を取得します。 + 基になるストリームを表すストリーム オブジェクト。 + 基になるストリームが閉じられました。 + + + + + + ファイルの圧縮解除中にストリームが読み取りをサポートするかどうかを示す値を取得します。 + + 値が Decompress, で、基になるストリームが読み取りをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + + + ストリームがシークをサポートしているかどうかを示す値を取得します。 + 常に false。 + + + ストリームが書き込みをサポートしているかどうかを示す値を取得します。 + + 値が Compress で、基になるストリームが書き込みをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + + + + で使用されているアンマネージ リソースを解放し、オプションでマネージ リソースを解放します。 + マネージ リソースとアンマネージ リソースの両方を解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在実装されているこのメソッドは、何の機能も提供しません。 + ストリームが閉じられました。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + 圧縮解除されたバイト数を、指定したバイト配列に読み取ります。 + 圧縮解除されバイト配列に読み取られたバイト数。既にストリームの末尾に到達している場合は、ゼロまたは読み取られたバイト数が返されます。 + 圧縮解除されたバイトを格納するために使用する配列。 + 読み取られるバイトが配置される 内のバイト オフセット。 + 読み取られる、圧縮解除されたバイトの最大数。 + + は null です。 + オブジェクトが作成されたとき、 値が Compress でした。または基になるストリームが読み取りをサポートしていません。 + + または が 0 未満です。または の長さからインデックスの開始点を引いた値が 未満です。 + データ形式が無効です。 + ストリームが閉じられました。 + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + ストリーム内の位置。 + + 値の 1 つ。 + このストリームでは、このプロパティはサポートされていません。 + + + このプロパティはサポートされていないため、常に をスローします。 + ストリーム長。 + このストリームでは、このプロパティはサポートされていません。 + + + 圧縮されたバイトを、指定したバイト配列から基になるストリームに書き込みます。 + 圧縮するデータを格納しているバッファー。 + バイトの読み取り元となる 内のバイト オフセット。 + 書き込む最大バイト数。 + ストリームが閉じているため、書き込み操作を実行できません。 + + + zip アーカイブ形式の圧縮ファイルのパッケージを表します。 + + + 指定したストリームからの クラスの新しいインスタンスを初期化します。 + 読み取るアーカイブを格納しているストリーム。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 指定したストリームと指定したモードから クラスの新しいインスタンスを初期化します。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定されたモードの指定されたストリームで クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定されたモードの指定されたストリームで クラスの新しいインスタンスを初期化し、エントリ名に指定されたエンコーディングを使用します。また、必要に応じて、ストリームを開いたままにします。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + このアーカイブのエントリ名の読み取りまたは書き込み時に使用するエンコード。エントリ名の UTF-8 エンコードをサポートしない zip アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定したパスとエントリ名を持つ空のエントリを zip アーカイブに作成します。 + zip アーカイブ内の空のエントリ。 + 作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 指定したエントリ名と圧縮レベルを持つ空のエントリを zip アーカイブに作成します。 + zip アーカイブ内の空のエントリ。 + 作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。 + エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + クラスの現在のインスタンスによって使用されているリソースを解放します。 + + + + クラスの現在のインスタンスによって使用されるアンマネージ リソースを解放するために、 メソッドと メソッドによって呼び出されます。オプションで、アーカイブの書き込みを終了し、マネージ リソースを解放できます。 + アーカイブの書き込みを終了し、アンマネージ リソースとマネージ リソースを解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在 zip アーカイブ内にあるエントリのコレクションを取得します。 + 現在 zip アーカイブ内にあるエントリのコレクション。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + zip アーカイブ内の指定したエントリのラッパーを取得します。 + アーカイブ内の指定されたエントリのラッパー。エントリがアーカイブに存在しない場合は null。 + 取得するエントリを識別する、アーカイブのルートを基準とするパス。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + zip アーカイブがエントリで実行できる操作の種類を示す値を取得します。 + zip のアーカイブがエントリ上で実行できる操作の種類 (読み込み、作成、または更新) を示す列挙値の 1 つ。 + + + zip アーカイブ内の圧縮ファイルを表します。 + + + エントリが属する zip アーカイブを取得します。 + エントリが属している zip アーカイブ、または、エントリが削除されている場合は null。 + + + zip アーカイブ内のエントリの圧縮サイズを取得します。 + zip アーカイブ内のエントリの圧縮サイズ。 + The value of the property is not available because the entry has been modified. + + + zip アーカイブからエントリを削除します。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + zip アーカイブ内のエントリの相対パスを取得します。 + zip アーカイブ内のエントリの相対パス。 + + + zip アーカイブのエントリが最後に変更されたときを取得または設定します。 + zip アーカイブ内のエントリが最後に変更された時間。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + zip アーカイブ内のエントリの非圧縮サイズを取得します。 + zip アーカイブ内のエントリの非圧縮サイズ。 + The value of the property is not available because the entry has been modified. + + + zip アーカイブ内のエントリのファイル名を取得します。 + zip アーカイブ内のエントリのファイル名。 + + + zip のアーカイブからエントリを開きます。 + エントリの内容を表すストリーム。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + zip アーカイブ内のエントリの相対パスを取得します。 + エントリの相対パス。これは プロパティに格納されている値です。 + + + zip のアーカイブ エントリとの対話のための値を指定します。 + + + 新しいアーカイブ エントリの作成に限り許可されます。 + + + 新しいアーカイブ エントリの読み込みに限り許可されます。 + + + 読み取りと書き込みの両方の操作がアーカイブ エントリで許可されます。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/ko/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/ko/System.IO.Compression.xml new file mode 100644 index 0000000..7026417 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/ko/System.IO.Compression.xml @@ -0,0 +1,446 @@ + + + + System.IO.Compression + + + + 압축 시 속도를 우선할지 압축 크기를 우선할지를 나타내는 값을 지정합니다. + + + 압축 작업은 결과 파일이 최적으로 압축되지 않더라도 가능한 신속하게 완료되어야 합니다. + + + 파일에 대해 압축을 수행할 수 없습니다. + + + 작업을 완료하는 데 시간이 더 걸리더라도 압축 작업은 최적으로 압축되어야 합니다. + + + 내부 스트림을 압축할지 또는 압축을 풀지 여부를 지정합니다. + + + 내부 스트림을 압축합니다. + + + 내부 스트림의 압축을 풉니다. + + + Deflate 알고리즘을 사용하여 스트림을 압축하고 압축을 풀기 위한 메서드와 속성을 제공합니다. + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축할 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축할 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림 개체를 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축하거나 압축을 풀 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축하거나 압축을 풀 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 내부 스트림에 대한 참조를 가져옵니다. + 내부 스트림을 나타내는 스트림 개체입니다. + 내부 스트림이 닫혀 있는 경우 + + + 파일의 압축을 푸는 동안 스트림을 읽을 수 있는지 여부를 나타내는 값을 가져옵니다. + + 값이 Decompress이고 내부 스트림이 열려 있으며 읽기를 지원하면 true이고, 이외의 경우는 false입니다. + + + 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다. + 모든 경우에 false입니다. + + + 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다. + + 값이 Compress이고 내부 스트림이 쓰기를 지원하며 닫혀 있지 않으면 true이고, 이외의 경우는 false입니다. + + + + 가 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제합니다. + 관리되는 리소스와 관리되지 않는 리소스를 모두 해제하려면 true로 설정하고, 관리되지 않는 리소스만 해제하려면 false로 설정합니다. + + + 이 메서드의 현재 클래스에는 기능이 없습니다. + 스트림이 닫혀 있는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 압축이 풀린 바이트 수를 지정된 바이트 배열로 읽어 들입니다. + 바이트 배열에 읽어 들인 바이트 수입니다. + 압축이 풀린 바이트를 저장할 배열입니다. + 읽은 바이트를 넣을 의 바이트 오프셋입니다. + 읽을 최대 압축 풀린 바이트 수입니다. + + 가 null인 경우 + 개체를 만들 때 값이 Compress였던 경우또는 내부 스트림이 읽기를 지원하지 않는 경우 + + 또는 가 0보다 작은 경우또는 길이에서 인덱스 시작 위치를 뺀 값이 보다 작은 경우 + 데이터의 형식이 잘못된 경우 + 스트림이 닫혀 있는 경우 + + + 이 작업은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 스트림 내의 위치입니다. + + 값 중 하나입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 이 작업은 지원되지 않으며 항상 을 throw합니다. + 스트림의 길이입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 지정된 바이트 배열에서 압축된 바이트를 내부 스트림에 씁니다. + 압축할 데이터가 들어 있는 버퍼입니다. + 바이트를 읽어올 의 바이트 오프셋입니다. + 쓸 최대 바이트 수입니다. + + + 스트림을 압축하거나 압축을 푸는 데 사용되는 메서드 및 속성을 제공합니다. + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축된 데이터를 쓸 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축된 데이터를 쓸 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림 개체를 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축되거나 압축을 푼 데이터가를 쓸 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + + 가 유효한 열거형 값이 아닌 경우또는이고 가 false인 경우또는이고 가 false인 경우 + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축되거나 압축을 푼 데이터가를 쓸 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 내부 스트림에 대한 참조를 가져옵니다. + 내부 스트림을 나타내는 스트림 개체입니다. + 내부 스트림이 닫혀 있는 경우 + + + + + + 파일의 압축을 푸는 동안 스트림을 읽을 수 있는지 여부를 나타내는 값을 가져옵니다. + + 값이 Decompress,이고 내부 스트림이 읽기를 지원하며 닫혀 있지 않으면 true이고, 그렇지 않으면 false입니다. + + + + + + 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다. + 모든 경우에 false입니다. + + + 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다. + + 값이 Compress이고 내부 스트림이 쓰기를 지원하며 닫혀 있지 않으면 true이고, 이외의 경우는 false입니다. + + + + + + + 에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. + 관리되는 리소스와 관리되지 않는 리소스를 모두 해제하려면 true로 설정하고, 관리되지 않는 리소스만 해제하려면 false로 설정합니다. + + + 이 메서드의 현재 클래스에는 기능이 없습니다. + 스트림이 닫혀 있는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 압축이 풀린 바이트 수를 지정된 바이트 배열로 읽어 들입니다. + 바이트 배열에 압축이 풀린 바이트 수입니다.스트림의 끝에 도달한 경우에는 0 또는 읽은 바이트 수가 반환됩니다. + 압축이 풀린 바이트를 저장하는 데 사용되는 배열입니다. + 읽은 바이트를 넣을 의 바이트 오프셋입니다. + 읽을 최대 압축 풀린 바이트 수입니다. + + 가 null인 경우 + 개체를 만들 때 값이 Compress였던 경우또는내부 스트림이 읽기를 지원하지 않는 경우 + + 또는 가 0보다 작은 경우또는 길이에서 인덱스 시작 위치를 뺀 값이 보다 작은 경우 + 데이터의 형식이 잘못된 경우 + 스트림이 닫혀 있는 경우 + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 스트림 내의 위치입니다. + + 값 중 하나입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + 스트림의 길이입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 지정된 바이트 배열에서 압축된 바이트를 내부 스트림에 씁니다. + 압축할 데이터가 들어 있는 버퍼입니다. + 바이트를 읽어올 의 바이트 오프셋입니다. + 쓸 최대 바이트 수입니다. + 스트림이 닫혀 있어서 쓰기 작업을 수행할 수 없는 경우 + + + Zip 보관 파일 형식으로 압축된 파일 패키지를 나타냅니다. + + + 지정된 스트림에서 클래스의 새 인스턴스를 초기화합니다. + 읽을 보관 저장소가 포함된 스트림입니다. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 지정된 모드를 사용하여 지정된 스트림에서 클래스의 새 인스턴스를 초기화합니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 지정된 모드에 대해 지정된 스트림에서 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둡니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 지정된 모드에 대해 지정된 스트림에서 클래스의 새 인스턴스를 초기화하고 항목 이름에 대해 지정된 인코딩을 사용하며 스트림을 선택적으로 연 상태로 둡니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + 이 보관 파일에서 이름을 읽거나 쓰는 동안 사용할 인코딩입니다.인코딩이 항목 이름에 대해 UTF-8 인코딩을 지원하지 않는 Zip 보관 도구와 라이브러리를 사용하여 상호 운용성에 인코딩이 필요할 때만 이 매개 변수에 대한 값을 지정합니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Zip 보관 파일에 지정된 경로 및 항목 이름을 가진 빈 항목을 만듭니다. + Zip 보관 파일의 빈 항목입니다. + 만들 항목의 이름을 지정하는, 보관 저장소의 루트에 상대적인 경로입니다. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Zip 보관 파일에 지정된 항목 이름 및 압축 수준을 가진 빈 항목을 만듭니다. + Zip 보관 파일의 빈 항목입니다. + 만들 항목의 이름을 지정하는, 보관 저장소의 루트에 상대적인 경로입니다. + 항목을 만들 때 속도 또는 압축 효율을 강조할지를 나타내는 열거형 값 중 하나입니다. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + 클래스의 현재 인스턴스에서 사용하는 리소스를 해제합니다. + + + + 클래스의 현재 인스턴스가 사용하는 관리되지 않는 리소스를 해제하기 위해 메서드에 의해 호출되며 선택적으로 보관 파일을 작성하고 관리되는 리소스를 해제합니다. + 보관 파일에 쓰기를 완료하고 관리되지 않은 리소스와 관리되는 리소스를 해제하려면 true이고, 관리되지 않은 리소스만 해제하려면 false입니다. + + + 현재 Zip 보관 파일에 있는 항목의 컬렉션을 가져옵니다. + 현재 Zip 보관 파일에 있는 항목의 컬렉션입니다. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Zip 보관 파일 항목에 대한 래퍼를 검색합니다. + 보관 저장소의 지정된 항목에 대한 래퍼이거나, 항목이 보관 저장소에 없는 경우 null입니다. + 검색할 항목을 식별하는, 보관 저장소의 루트에 상대적인 경로입니다. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Zip 보관 파일이 엔트리에 대해 수행할 수 있는 동작의 유형을 나타내는 값을 가져옵니다. + 엔트리에 Zip 보관 파일을 보관할 수 있는 동작(읽기, 만들기 또는 업데이트) 유형을 설명하는 열거형 값 중 하나입니다. + + + Zip 보관 파일 내의 압축된 파일을 나타냅니다. + + + 엔트리가 속한 Zip 보관 파일을 가져옵니다. + 항목이 속하는 Zip 보관 파일이거나, 항목이 삭제된 경우 null입니다. + + + Zip 보관 파일에 있는 항목의 압축된 크기를 가져옵니다. + Zip 보관 파일에 있는 항목의 압축된 크기입니다. + The value of the property is not available because the entry has been modified. + + + Zip 보관 파일에서 항목을 삭제합니다. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Zip 보관 파일에 있는 항목의 상대 경로를 가져옵니다. + Zip 보관 파일에 있는 항목의 상대 경로입니다. + + + Zip 보관 파일의 항목이 마지막으로 변경된 시간을 가져오거나 설정합니다. + Zip 보관 파일의 항목이 마지막으로 변경된 시간입니다. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Zip 보관 파일에 있는 항목의 압축되지 않은 크기를 가져옵니다. + Zip 보관 파일에 있는 항목의 압축 해제된 크기입니다. + The value of the property is not available because the entry has been modified. + + + Zip 보관 파일에 있는 항목의 파일 이름을 가져옵니다. + Zip 보관 파일에 있는 항목의 파일 이름입니다. + + + Zip 보관 파일에서 항목을 엽니다. + 항목의 내용을 나타내는 스트림입니다. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Zip 보관 파일에 있는 항목의 상대 경로를 검색합니다. + 항목의 상대 경로로, 속성에 저장된 값입니다. + + + Zip 보관 파일 항목과 상호 작용하기 위한 값을 지정합니다. + + + 새 보관 항목 만들기만 허용됩니다. + + + 보관 항목 읽기만 허용됩니다. + + + 보관 항목에 대해 읽기 및 쓰기 작업 모두가 허용됩니다. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/ru/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/ru/System.IO.Compression.xml new file mode 100644 index 0000000..39281ce --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/ru/System.IO.Compression.xml @@ -0,0 +1,415 @@ + + + + System.IO.Compression + + + + Определяет значения, указывающие, для какой характеристики оптимизируется сжатие: скорость или размер. + + + Операция сжатия должна завершиться как можно быстрее, даже если результирующий файл не будет сжат оптимально. + + + Файл не требуется сжимать. + + + При операции сжатия должно применяться оптимальное сжатие, даже если это увеличивает длительность ее выполнения. + + + Задает, следует ли сжимать или распаковывать основной поток. + + + Сжимает основной поток. + + + Распаковывает основной поток. + + + Предоставляет методы и свойства для сжатия и распаковки потоков с использованием алгоритма Deflate. + + + Инициализирует новый экземпляр класса с использованием указанного потока и уровня сжатия. + Поток для сжатия. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с помощью указанного потока и уровня сжатия, а также при необходимости оставляет поток открытым. + Поток для сжатия. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Значение true, чтобы оставить объект потока открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с использованием указанного потока и режима сжатия. + Поток, который нужно сжать или распаковать. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Инициализирует новый экземпляр класса с помощью указанного потока и режима сжатия, а также при необходимости оставляет поток открытым. + Поток, который нужно сжать или распаковать. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Возвращает ссылку на основной поток. + Объект потока, представляющий основной поток. + Основной поток закрыт. + + + Возвращает значение, указывающее, поддерживает ли поток чтение во время распаковки файла. + Значение true, если значение равно Decompress, а основной поток открыт и поддерживает чтение; в противном случае — false. + + + Возвращает значение, указывающее, поддерживает ли поток поиск. + Значение false во всех случаях. + + + Возвращает значение, определяющее, поддерживает ли поток операции записи. + Значение true, если значение равно Compress, и основной поток поддерживает запись и не закрыт; в противном случае — false. + + + Освобождает неуправляемые ресурсы, используемые объектом , а при необходимости освобождает также управляемые ресурсы. + Значение true позволяет освободить как управляемые, так и неуправляемые ресурсы; значение false освобождает только неуправляемые ресурсы. + + + Текущая реализация этого метода не функциональна. + Поток закрыт. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Считывает число распакованных байтов в указанный массив байтов. + Число байтов, которые были считаны в массив байтов. + Массив для хранения распакованных байтов. + Смещение в байтах в массиве , в который будут помещены считанные байты. + Максимальное число распакованных байтов для считывания. + Свойство имеет значение null. + При создании объекта значение было равно Compress.-или- Основной поток не поддерживает чтение. + Значение параметра или меньше нуля.-или-Длина массива минус начальная точка индекса меньше чем . + Недопустимый формат данных. + Поток закрыт. + + + Эта операция не поддерживается и всегда вызывает исключение . + Значение типа long. + Расположение в потоке. + Одно из значений . + Для данного потока это свойство не поддерживается. + + + Эта операция не поддерживается и всегда вызывает исключение . + Длина потока. + Для данного потока это свойство не поддерживается. + + + Записывает сжатые байты в основной поток из указанного массива байтов. + Буфер, содержащий данные для сжатия. + Смещение байтов в , из которого будут считываться байты. + Максимальное число байтов для записи. + + + Предоставляет методы и свойства, используемые для сжатия и распаковки потоков. + + + Инициализирует новый экземпляр класса с использованием указанного потока и уровня сжатия. + Поток, в который необходимо записать сжатые данные. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с помощью указанного потока и уровня сжатия, а также при необходимости оставляет поток открытым. + Поток, в который необходимо записать сжатые данные. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Значение true, чтобы оставить объект потока открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с использованием указанного потока и режима сжатия. + Поток, в который записываются сжатые или распакованные данные. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Свойство имеет значение null. + + не является допустимым значением перечисления .-или- и — false.-или- и — false. + + + Инициализирует новый экземпляр класса с помощью указанного потока и режима сжатия, а также при необходимости оставляет поток открытым. + Поток, в который записываются сжатые или распакованные данные. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Возвращает ссылку на основной поток. + Объект потока, представляющий основной поток. + Основной поток закрыт. + + + + + + Возвращает значение, указывающее, поддерживает ли поток чтение во время распаковки файла. + Значение true, если значение равно Decompress,, и основной поток поддерживает чтение и не закрыт; в противном случае — false. + + + + + + Возвращает значение, указывающее, поддерживает ли поток поиск. + Значение false во всех случаях. + + + Возвращает значение, определяющее, поддерживает ли поток операции записи. + Значение true, если значение равно Compress, и основной поток поддерживает запись и не закрыт; в противном случае — false. + + + + + + Освобождает неуправляемые ресурсы, используемые объектом , а при необходимости освобождает также и управляемые ресурсы. + Значение true позволяет освободить как управляемые, так и неуправляемые ресурсы; значение false освобождает только неуправляемые ресурсы. + + + Текущая реализация этого метода не функциональна. + Поток закрыт. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Считывает число распакованных байтов в указанный массив байтов. + Число байтов, которые были распакованы в массив байтов.Если достигнут конец потока, возвращаемое значение представляет собой число считанных байтов или же равно нулю. + Массив, используемый для хранения распакованных байтов. + Смещение в байтах в массиве , в который будут помещены считанные байты. + Максимальное число распакованных байтов для считывания. + Свойство имеет значение null. + При создании объекта значение было равно Compress.-или-Основной поток не поддерживает чтение. + Значение параметра или меньше нуля.-или-Длина массива минус начальная точка индекса меньше чем . + Недопустимый формат данных. + Поток закрыт. + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Расположение в потоке. + Одно из значений . + Для данного потока это свойство не поддерживается. + + + Это свойство не поддерживается и всегда вызывает исключение . + Длина потока. + Для данного потока это свойство не поддерживается. + + + Записывает сжатые байты в основной поток из указанного массива байтов. + Буфер, содержащий данные для сжатия. + Смещение байтов в , из которого будут считываться байты. + Максимальное число байтов для записи. + Операция записи не может быть выполнена, поскольку поток закрыт. + + + Представляет пакет сжатых файлов в формате ZIP архива. + + + Инициализирует новый экземпляр класса из заданного потока. + Поток, содержащий архив для чтения. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Инициализирует новый экземпляр класса из указанного потока с заданным режимом. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Инициализирует новый экземпляр класса на указанном потоке для заданного режима, а также при необходимости оставляет поток открытым. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Инициализирует новый экземпляр класса на указанном потоке для заданного режима, использует указанную кодировку для кодировку для имен записей, а также, при необходимости, оставляет поток открытым. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Кодирование, используемое при чтении или записи имен записей в этом архиве.Задайте значение для этого параметра, только если кодирование требуется для взаимодействия с инструментами и библиотеками ZIP-архива, которые не поддерживают кодирование UTF-8 для имен записей. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Создает пустую запись, которая имеет указанные путь и имя записи в ZIP архиве. + Пустая запись в ZIP-архиве. + Путь относительно корня архива, который указывает имя создаваемой записи. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Создает пустую запись, которая имеет указанные имя и уровень сжатия ZIP записи в архиве. + Пустая запись в ZIP-архиве. + Путь относительно корня архива, который указывает имя создаваемой записи. + Одно из значений перечисления, указывающее, акцентировать ли внимание на скорости или эффективности сжатия при создании записи. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Освобождает ресурсы, используемые текущим экземпляром класса . + + + Вызывается методами и , чтобы освободить неуправляемые ресурсы, используемые текущим экземпляром класса . Дополнительно может заканчивать запись архива и высвобождать управляемые ресурсы. + Значение true — для завершения записи архива и освобождения управляемых и неуправляемых ресурсов; значение false — для освобождения только неуправляемых ресурсов. + + + Получает коллекцию записей, которые находятся в ZIP-архиве в текущий момент. + Коллекция записей, которые находятся в ZIP-архиве в текущий момент. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Извлекает оболочку для заданной записи в ZIP-архиве. + Программа-оболочка для определенной записи в архиве; null — если запись не существует в архиве. + Путь относительно корня архива, который указывает запись для получения. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Получает значение, которое описывает тип действий, которые ZIP-архив может выполнять над записями. + Одно из значений перечисления, описывающее тип действия (чтение, создание или обновление), которое ZIP-архив может выполнять над записями. + + + Представляет сжатый файл внутри ZIP-архива. + + + Получает ZIP-архив, к которому принадлежит запись. + ZIP-архив, которому принадлежит запись, или значение null, если запись была удалена. + + + Получает сжатый размер записи в ZIP-архиве. + Сжатый размер записи в ZIP-архиве. + The value of the property is not available because the entry has been modified. + + + Удаляет запись из ZIP-архива. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Получает относительный путь записи в ZIP-архиве. + Относительный путь записи в ZIP-архиве. + + + Получает или задает время последнего изменения записи в ZIP-архиве. + Время последнего изменения записи в ZIP-архиве. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Получает несжатый размер записи в ZIP-архиве. + Несжатый размер записи в ZIP-архиве. + The value of the property is not available because the entry has been modified. + + + Получает имя файла записи в ZIP-архиве. + Имя файла записи в ZIP-архиве. + + + Открывает запись из ZIP-архива. + Поток, представляющий содержимое записи. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Извлекает относительный путь записи в ZIP-архиве. + Относительный путь записи, который является значением, хранящимся в свойстве . + + + Определяет значения для взаимодействия с записями ZIP-архива. + + + Разрешено только создание новых записей архива. + + + Разрешено только чтение записей архива. + + + Операции чтение и запись разрешены для записей архива. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hans/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hans/System.IO.Compression.xml new file mode 100644 index 0000000..244bf38 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hans/System.IO.Compression.xml @@ -0,0 +1,436 @@ + + + + System.IO.Compression + + + + 指定表明是否压缩操作重点介绍速度或压缩大小的值。 + + + 即使结果文件未可选择性地压缩,压缩操作也应尽快完成。 + + + 该文件不应执行压缩。 + + + 即使操作要用更长的时间来完成,也应该可选性地压缩压缩操作。 + + + 指定是否压缩或解压缩基础流。 + + + 压缩基础流。 + + + 解压缩基础流。 + + + 提供使用 Deflate 算法压缩和解压缩流的方法和属性。 + + + 用指定的流和压缩级别初始化 类的新实例。 + 要压缩的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 使用指定的流和压缩级别,初始化 类的新实例,有选择性的打开流。 + 要压缩的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 用指定的流和压缩模式初始化 类的新实例。 + 要压缩或解压缩的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 使用指定的流和压缩模式,初始化 类的新实例,有选择性的打开流。 + 要压缩或解压缩的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + 如果在释放 对象之后打开流,则为 true;否则为 false。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 获取对基础流的引用。 + 表示基础流的流对象。 + 基础流已关闭。 + + + 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 + 如果 值为 Decompress 而且基础流已打开并支持读取,则为 true;否则为 false。 + + + 获取一个值,该值指示流是否支持查找。 + 在所有情况下均为 false。 + + + 获取一个值,该值指示流是否支持写入。 + 如果 值为 Compress 而且基础流未关闭并支持写入,则为 true;否则为 false。 + + + 释放由 占用的非托管资源,还可以释放托管资源。 + 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。 + + + 此方法的当前实现没有任何功能。 + 流已关闭。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 将若干解压缩的字节读入指定的字节数组。 + 已读入到字节数组中的字节数。 + 用于存储解压缩的字节的数组。 + + 中的字节偏移量,将在此处放置读取的字节。 + 最多要读取的解压缩字节数。 + + 为 null。 + 创建对象时 值是 Compress。- 或 - 基础流不支持读取。 + + 小于零。- 或 - 长度减去索引起始点小于 + 数据的格式无效。 + 流已关闭。 + + + 此操作不受支持,它总是引发 + 一个长值。 + 流中的位置。 + + 值之一。 + 此流中不支持此属性。 + + + 此操作不受支持,它总是引发 + 流的长度。 + 此流中不支持此属性。 + + + 从指定的字节数组中将压缩的字节写入基础流。 + 包含要压缩的数据的缓冲区。 + + 中的字节偏移量,将在此处读取字节。 + 最多写入的字节数。 + + + 提供用于压缩和解压缩流的方法和属性。 + + + 用指定的流和压缩级别初始化 类的新实例。 + 要将压缩数据写入到其中的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 使用指定的流和压缩级别,初始化 类的新实例,有选择性的打开流。 + 要将压缩数据写入到其中的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 用指定的流和压缩模式初始化 类的新实例。 + 压缩或解压缩后的数据被写入的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + + 为 null。 + + 不是有效的 枚举值。- 或 - 为 false。- 或 - 为 false。 + + + 使用指定的流和压缩模式,初始化 类的新实例,有选择性的打开流。 + 压缩或解压缩后的数据被写入的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + 如果在释放 对象之后打开流,则为 true;否则为 false。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 获取对基础流的引用。 + 表示基础流的流对象。 + 基础流已关闭。 + + + + + + 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 + 如果 值为 Decompress, 而且基础流未关闭并支持读取,则为 true;否则为 false。 + + + + + + 获取一个值,该值指示流是否支持查找。 + 在所有情况下均为 false。 + + + 获取一个值,该值指示流是否支持写入。 + 如果 值为 Compress 而且基础流未关闭并支持写入,则为 true;否则为 false。 + + + + + + 释放由 占用的非托管资源,还可以释放托管资源。 + 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。 + + + 此方法的当前实现没有任何功能。 + 流已关闭。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 将若干解压缩的字节读入指定的字节数组。 + 解压缩到字节数组中的字节数。如果已到达流的末尾,则返回 0 或已读取的字节数。 + 用于存储解压缩字节的数组。 + + 中的字节偏移量,将在此处放置读取的字节。 + 最多要读取的解压缩字节数。 + + 为 null。 + 创建对象时 值是 Compress。- 或 -基础流不支持读取。 + + 小于零。- 或 - 长度减去索引起始点小于 + 数据的格式无效。 + 流已关闭。 + + + 此属性不受支持,并且总是引发 + 一个长值。 + 流中的位置。 + + 值之一。 + 此流中不支持此属性。 + + + 此属性不受支持,并且总是引发 + 流的长度。 + 此流中不支持此属性。 + + + 从指定的字节数组中将压缩的字节写入基础流。 + 包含要压缩的数据的缓冲区。 + + 中的字节偏移量,将在此处读取字节。 + 最多写入的字节数。 + 由于流已关闭,因此无法执行写入操作。 + + + 表示 Zip 存档格式中的一个压缩文件包。 + + + 从指定流初始化 类的新实例。 + 即包含待读取的存档的流。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 在指定的模式下,从指定的流初始化 类的新实例。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 对于指定的模式,初始化指定流上的 类的新实例,并有选择性地使流保持打开状态。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 对于指定的模式,初始化指定流上的 类的新实例,使用项名的指定编码,并有择性地使流保持打开状态。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + 在存档中读取或写入项名时使用的编码。仅当需要针对具有不支持项名的 UTF-8 编码的 zip 归档工具和库的互操作性进行编码时,为此参数指定一个值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 创建在 zip 存档中有指定路径和项名的空项。 + 在 zip 存档中的空项。 + 相对于存档的根的路径指定了要创建项的名称。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 创建在 zip 存档中有指定项名和压缩级别的空项。 + 在 zip 存档中的空项。 + 相对于存档的根的路径指定了要创建项的名称。 + 指示创建项时是否强调速度或压缩有效性的枚举值之一。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 释放 类的当前实例使用的资源。 + + + 方法调用,以释放 类的当前实例使用的未托管资源,并有选择性地完成编写存档以及释放托管资源。 + true 则完成编写存档并释放未托管和托管资源;false 则仅释放未托管资源。 + + + 获取 zip 存档中当前存在的项的集合。 + 在 zip 存档中当前存在的项的集合。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 在 zip 存档中检索指定项的包装。 + 存档中指定项的包装器;如果存档中不存在此项目则为 null。 + 识别要检索的项、相对于存档的根的路径。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 获取描述 zip 存档可在项上执行的操作类型的一个值。 + 描述 zip 存档可在项上执行的操作类型(读取、创建或更新)的一个枚举值。 + + + 表示 zip 档案中的压缩文件。 + + + 获取该项所属的 zip 存档。 + 项所属的 zip 存档,或如果已删除项,则为 null。 + + + 获取在 zip 存档中的项的压缩大小。 + 在 zip 存档中的项的压缩大小。 + The value of the property is not available because the entry has been modified. + + + 删除 zip 存档中的项。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + 获取 zip 存档中的项的相对路径。 + 在 zip 存档中的项的相对路径。 + + + 获取或设置最近一次更改 zip 存档中的项的时间。 + 最近一次更改 zip 存档中的项的时间。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + 获取 zip 存档中的项的未压缩大小。 + 在 zip 存档中的项的未压缩大小。 + The value of the property is not available because the entry has been modified. + + + 获取在 zip 存档中的项的文件名。 + 在 zip 存档中的项的文件名。 + + + 打开 zip 存档中的项。 + 表示项的内容的流。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + 检索 zip 存档中项的相对路径。 + 项的相对路径,即存储在 属性中的值。 + + + 指定与 zip 存档项互交的值。 + + + 只允许创建新存档项。 + + + 只允许读取存档项。 + + + 存档项允许读取和写入操作。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hant/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hant/System.IO.Compression.xml new file mode 100644 index 0000000..996a714 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/zh-hant/System.IO.Compression.xml @@ -0,0 +1,432 @@ + + + + System.IO.Compression + + + + 指定值,這個值表示壓縮作業會強調速度還是壓縮大小。 + + + 即使不能有效壓縮所產生的檔案,應該儘速完成壓縮作業。 + + + 不應該對檔案執行壓縮。 + + + 壓縮作業應該會進行最佳化壓縮,即使該作業耗費更長的時間才能完成。 + + + 指定是要壓縮還是要解壓縮基礎資料流。 + + + 壓縮基礎資料流。 + + + 解壓縮基礎資料流。 + + + 提供方法和屬性,以透過 Deflate 演算法來壓縮和解壓縮資料流。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體。 + 要壓縮的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要壓縮的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + true 表示在處置 物件之後,將資料流物件保持開啟;否則為 false。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體。 + 要壓縮或解壓縮的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要壓縮或解壓縮的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + true 表示在處置 物件之後,將資料流保持開啟;否則為 false。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 取得基礎資料流的參考。 + 資料流物件,表示基礎資料流。 + 已關閉基礎資料流。 + + + 取得值,指出在解壓縮檔案時,資料流是否支援讀取。 + 如果 值為 Decompress,且基礎資料流處於開啟狀態並支援讀取,則為 true;否則為 false。 + + + 取得值,指出資料流是否支援搜尋。 + 所有情況下都是 false。 + + + 取得值,指出資料流是否支援寫入。 + 如果 值為 Compress,並且基礎資料流支援寫入,且不處於關閉狀態,則為 true;否則為 false。 + + + 釋放 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 + true 表示釋放 Managed 和 Unmanaged 資源,false 則表示只釋放 Unmanaged 資源。 + + + 這個方法目前的實作沒有任何功能。 + 已關閉資料流。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 將大量解壓縮的位元組讀入指定的位元組陣列。 + 已讀入至位元組陣列的位元組數。 + 用於儲存解壓縮位元組的陣列。 + 要在其中放置讀取位元組之 的位元組位移。 + 要讀取的最大解壓縮位元組數。 + + 為 null。 + 建立物件時, 的值為 Compress。-或- 基礎資料流不支援讀取。 + + 小於零。-或- 長度減去索引起點小於 + 資料的格式無效。 + 已關閉資料流。 + + + 這個作業不受支援,而且一律會擲回 + 長整數值。 + 在資料流中的位置。 + 其中一個 值。 + 這個資料流不支援這個屬性。 + + + 這個作業不受支援,而且一律會擲回 + 資料流的長度。 + 這個資料流不支援這個屬性。 + + + 從指定的位元組陣列將壓縮的位元組寫入基礎資料流。 + 包含要壓縮之資料的緩衝區。 + + 中的位元組位移,即讀取位元組的來源位置。 + 寫入的最大位元組數。 + + + 提供用於壓縮和解壓縮資料流的方法和屬性。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體。 + 要寫入壓縮資料的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要寫入壓縮資料的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + true 表示在處置 物件之後,將資料流物件保持開啟;否則為 false。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體。 + 寫入壓縮或解壓縮資料的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + + 為 null。 + + 不是有效的 列舉值。-或-,而 是 false。-或-,而 是 false。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 寫入壓縮或解壓縮資料的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + true 表示在處置 物件之後,將資料流保持開啟;否則為 false。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 取得基礎資料流的參考。 + 資料流物件,表示基礎資料流。 + 已關閉基礎資料流。 + + + + + + 取得值,指出在解壓縮檔案時,資料流是否支援讀取。 + 如果 值為 Decompress,,並且基礎資料流支援讀取,且不處於關閉狀態,則為 true;否則為 false。 + + + + + + 取得值,指出資料流是否支援搜尋。 + 所有情況下都是 false。 + + + 取得值,指出資料流是否支援寫入。 + 如果 值為 Compress,並且基礎資料流支援寫入,且不處於關閉狀態,則為 true;否則為 false。 + + + + + + 釋放 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 + true 表示釋放 Managed 和 Unmanaged 資源,false 則表示只釋放 Unmanaged 資源。 + + + 這個方法目前的實作沒有任何功能。 + 已關閉資料流。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 將大量解壓縮的位元組讀入指定的位元組陣列。 + 解壓縮至位元組陣列的位元組數。如果已達到資料流的結尾,則會傳回零或位元組數。 + 用於儲存解壓縮位元組的陣列。 + 要在其中放置讀取位元組之 的位元組位移。 + 要讀取的最大解壓縮位元組數。 + + 為 null。 + 建立物件時, 的值為 Compress。-或-基礎資料流不支援讀取。 + + 小於零。-或- 長度減去索引起點小於 + 資料的格式無效。 + 已關閉資料流。 + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 在資料流中的位置。 + 其中一個 值。 + 這個資料流不支援這個屬性。 + + + 這個屬性不受支援,而且一律會擲回 + 資料流的長度。 + 這個資料流不支援這個屬性。 + + + 從指定的位元組陣列將壓縮的位元組寫入基礎資料流。 + 包含要壓縮之資料的緩衝區。 + + 中的位元組位移,即讀取位元組的來源位置。 + 寫入的最大位元組數。 + 無法執行寫入作業,因為資料流已關閉。 + + + 代表 zip 封存格式的壓縮檔封裝。 + + + 從指定的資料流,初始化 類別的新執行個體。 + 包含要讀取之封存的資料流。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 使用指定的模式,從指定的資料流初始化 類別的新執行個體。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在指定之模式的指定資料流上,初始化 類別的新執行個體,並選擇性地保留資料流開啟狀態。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + true 表示在處置 物件之後,將資料流保持開啟,否則為 false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在指定模式的指定資料流上,初始化 類別的新執行個體,使用項目名稱的指定編碼方式,並選擇性地保留資料流開啟狀態。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + true 表示在處置 物件之後,將資料流保持開啟,否則為 false。 + 在此封存中讀取或寫入項目名稱時要使用的編碼方式。只有需要編碼以與 Zip 封存工具和程式庫互通,且這類工具和程式庫不支援項目名稱使用 UTF-8 編碼時,才指定此參數的值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在 zip 封存中建立具有指定之路徑和項目名稱的空項目。 + Zip 封存中的空項目。 + 指定要建立之項目名稱的路徑 (相對於封存的根目錄)。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 在 zip 封存中建立具有指定之項目名稱和壓縮等級的空項目。 + Zip 封存中的空項目。 + 指定要建立之項目名稱的路徑 (相對於封存的根目錄)。 + 其中一個列舉值,指出建立項目時是否要強調速度或壓縮的效益。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 類別目前的執行個體所使用的資源釋出。 + + + 方法呼叫以釋放 類別之目前執行個體所使用的 Unmanaged 資源,並選擇性完成封存的寫入以及釋放 Managed 資源。 + true 表示完成寫入封存並釋放 Managed 和 Unmanaged 資源,false 表示只釋放 Unmanaged 資源。 + + + 取得目前 zip 封存中所包含項目的集合。 + 目前 zip 封存中所包含項目的集合。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 在 zip 封存中擷取指定項目的包裝函式。 + 封存中指定項目的包裝函式,如果項目不存在於封存中則為 null。 + 識別要擷取之項目的路徑 (相對於封存的根目錄)。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 取得值,描述 zip 封存可以在項目上執行的動作類型。 + 其中一個列舉值,其描述 zip 封存可以在項目上執行的動作類型 (讀取、建立或更新)。 + + + 表示 zip 封存中的壓縮檔。 + + + 取得項目所屬的 zip 封存。 + 項目所屬的 Zip 封存,如果已刪除項目,則為 null。 + + + 取得 Zip 封存中的項目壓縮大小。 + Zip 封存中項目的壓縮大小。 + The value of the property is not available because the entry has been modified. + + + 從 zip 封存中刪除項目。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + 取得 Zip 封存中的項目相對路徑。 + Zip 封存中的項目相對路徑。 + + + 取得或設定上次變更 zip 封存中之項目的時間。 + 上次變更 zip 封存中之項目的時間。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + 取得 Zip 封存中的項目未壓縮大小。 + Zip 封存中的項目未壓縮大小。 + The value of the property is not available because the entry has been modified. + + + 取得 Zip 封存中的項目檔名。 + Zip 封存中的項目檔名。 + + + 從 zip 封存中開啟項目。 + 代表此項目內容的資料流。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + 擷取 Zip 封存中項目的相對路徑。 + 項目的相對路徑,其為儲存在 屬性中的值。 + + + 指定與 zip 封存項目互動的值。 + + + 僅允許建立新的封存項目。 + + + 僅允許讀取封存項目。 + + + 封存項目允許讀取及寫入作業。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/System.IO.Compression.dll b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..2b6a85643dcffe4e9fe71d3336da3f259e798dbc GIT binary patch literal 23520 zcmeHv2|QHY`}mzP#=h^ej4cx5j$N`Zkt`v~k_Lle7{*vzY*A^^qEIT7s0e9MDIvWn zg;p(+v`C83f|mcecZ~Gb`~AM(@9+11-tYJS`CZ-Tp65B|o^zh(Jm)#jdG48B>YsSdN~x{_xYHI@*~pocQZk%S;}R1}>_ z2&51gaZvVYQ#+?L>mAYn9(W%U~&;1Pgaso)0mtJ@*K*NRM}DDv<7a|%UB;HuY!Ahcmi2#Q98 zz`hh9=!qFXRzMIxoA$3f3DaFi-{J^a z5$&5LNFa<#f_uhg38X?~P-t{e5bf&;}-RY_u<=PK4*@vFAc7X>fIQ0MlP!U(EUrfe8gw3 zm5vRCC-LvTuDPo7eIv1rdLiezc%j&k83t?pIm&|2HGcE`TaET*!3v8{_N!}JA9=;c zdtG*3ol``tjL92f#*)2K&*XQ%dLc2Y(k3q*~9AQ4gMs|1)17^J^b`FNxdQqJ0Ap*0361ujGf;`NCzQ4iK5nIIHShz8(V z@UqGp2pR^@4o;BvU^1vtp|MDbi-IhDRaxQzT>)ui%BU<@;%Ez=T>zH@`lMn_qX!~| z!39u^w_*tf)sqP|Jwzvw)@8vBs)xYrg^a;H58MbH@P*Qarf_7cA=6uG3P)@Zkk%9j zc<2OF39x493{d#1AdQDQQOX9)8AuTNiW$M+q1jk2EFLPtBDu93#T=j{3SXj-6NgX~ zP-uigcN9jTa6Jl-p|BN&PjN^++?=0qc!GJhUB!#{oq8$&xc7ZwyGP zLIyy>Y|IJ8Shz6c3ostQIg%?3QKv9b6k`HR0OYBlSjrSeMC;4}7$?Xxf$;clAPKM3 z=b)@t>KhbJ0?4LwU0xm zt0@fOmH^pJVFA zbP7Yb)qs3Z4B<8tnhOO^V;dnYD0~{*0TCg_G*$?apkx-tZHg@enznihTY#+wSSkyH z+^{DBmNAW;gAAc86nlY*2V-Omtw*s-09y*M?5UD|;5`#)Gm2$^p7{eSu#=U?&A@g7 zEPo1HgLMU1;S{z5dlz6uQ&<)D0l-d8VU5@xfYnW5h^$Sa`YG%dc+V7SU}4ZBtUtgS zr?5V(J-{xZ*k!06Es4xuePD2~kSTyO(;U#E85FPIrP;Z@D4mSL2mrBA41gR^B1%Eh zSZEEJW|jQ8%-`QSo9jQ~k<~*am&G*>%0xNJn}%%ZvE;y_`vR*e0y#obn2*q66fQ#{ z8HH37#-K0>g=r| zgJp;t*oRpFN~07xG_8uJHPEycC_@CcM;=22)&haEP^bdU2kE(xH-LIj0)RG91%OT{ z^ne;c+86o_z#udo0qP_|D^ZvMy#w@(&;&*rg994H32^~yDgYp|-W|py0(b(m8o+uK zUP9q@Od6ovM&X|+L%}wK@{!m!0N-Js12~RFYT)G<08otMEr6^#l>i0t<~RVvgC`dB zgbP4!uohv#%?BVa=pP281VCC6^b-r#Vi5qPfmE=N3?u=dETCb5d}KgLIRLT1{>%bU z1K3L}qys4e2m=F;1r`Na#q@x+!a}+z)CXm;z<$huaH-$@^cc`bE{p+yGo5V=v=2~z zPdoDqS~mtILeP9?dT<<#Vh(vE#WE?8L`PSm4LvfNL5Yo}(xZsMG#WGmUqp$g(0*NX zW-(AF1+t}t(8x>*aE>VCNN9l%HF_!uQdW$hFlsyn`ku6lVlt9u;Aj<7eR7YBVp1b1 zQ|&@_QE`#q`v6VV>KYhM31UKyw$#{YdMr7RMuFnVv^YvY0Ax=Fti>`R7y1lVAlGP6 zDfv5lpu<5^oI}JQCY=F=QkVhO!)a;K1k(JYYmpim;%X>SIVNkNfCl&DZ< z7@BmW$5NR-1dQg~C)v)TF(GPYX*zJQS ztIX63)6GnY&l7Bsh;~sy^kCqnvIU0_fh2z<+R$k{4h6M2hU;MHy-T4{z=*g;Q=%YGI?G9i*iExFVY=DrCV#9A zt%=1Iv?MwhbO(xMX*63|fV5cCf<__7Q_$8T5&cKC4+=)r5fMC@!5}9=bQU8)bfD7^ zoi*STME8+~rpIHN!X7SnFqv2*16jq!QX&IsNuE?Djbgtf5;o<s1Kt1rHpD?d4ZF9; z7lRER-(1!m%#fZK9{vV#S6c+6h}_|whsASq;6=D`$O3=^+fUX40!aK^1T03BM}(W3 zz=1xoQw07g0zVcppA>5nA2(FhhIAoi+>;{xv~U?7=4Uj86i z3?$)94Pww^=^;#l4V@89XP~13L5dhib~>x+7=h?w=Si>!Q9DWkoe=>+`WQ&3=`dls z$jrBi1Om`H0y=$S31Gnm%0USxg8e)O5}FP>5J^TRx*+(#iR^r#IT%PaWS(Deupg67 zr^WgOQ{scE@qTtekz}{HKpHg&s6R0_3bf3P0bUAn0p>7}Csxv%L5_BzN7*F?QBdRH z8OER|#3EYoY$|qzl>UmO2}tVaiyh-)s5=okV|?`Jwv&H>y@Ey4J+l@s9NIDG)UAP*=2Ks(4Cq#Qw{ z)dk>=0NS&nuF!eh&{tMG1qboi)8i2hN1hhoZRA3##GNWw zjDkWSI$B5-eajQ%k^waq#D{v(S3{upff;D6cqZ4n%vMbFyNc@rw;`p zGJqBVzZe5{2XrVB{87N$OwbAhI7|XhCZI%uodLovvWGxQMT1tr`V0P8y&yutpjSvt zZV~Xk*>y#u{Y?VWA*1yoeRT$J1cA5d;9WZ4kO>qNsgnWfMBq%${Lp@}C1Q)Vh`dV$ zWoPpL@AT6WXa;6lMqZ$9#xyrbKlK5xFu3&q)C0Q#6OblBM&PLnZV2*3`-Y4XA|D2L zk^%qUIsJF~v=;0@FhGL9c|~hOHy%&(zpO+yKlm-zUbZiJS>WKwZ z)(9efj|VLV1OAYUC3DxQvWO-je6hy>!4M7k_jH3LGdEB-9kdq*^Z;xHrfd9_ZX5&s zB!V(_K;8t<3q(JV_7hND0oE0=MaS{SI)6W!|7}(NA)0j zfy|r#yZ!?u00xF1bW2$8Kd^8A*QLK)0_ZnREQsQyo889qXl6NNeH6fOVT;nuS^%jL zi@}iiU>-c@TtN=3EGGmn!t>6>V{n*sBP<42WDd`VrDjlsU>*((RD>(Rrb4jNjQ4Qj zseauHAMVTBW9_y7Xh(9RT)=q?pQ3aLZ8#lQ1gCSXFXF&ruvlKQOxq4%Tp%a}7MSi2 zh7+`$gm#2u2@WrYUE)C!gGKNF;TGfdCdY<>eJYb4MG}Su5h9lumpdgmk{%UIQh?lR&d;qEk1Hu#v zr)B&leG`EBkiPMW;hbIF+}W&f`~fR)I!1Y>%rGGQmyQtvBa7k1reiSBTi*+-MO6E; z@J~X%Ih>R_k9~H6Uw4>czM8o1o=b5}nT^gz%05!BF3IlLy++lwO81B-*RGi`xaA>t z@6=)i*Bc>cUZ3X2ewpJ}S-$SWRpk?R8o1-$XGiA*-5bhQc$H(L8tijx-RiB8rWNtm zy$x6Q*9&`9uxI@pI>r{%k`e>k++-Q*WRBPH*qa{ zHBzGe2nMOhGK^r8OM9!aZh5kz0O84FYs zb08ff44RD`MnPEQ~qi&!17_X3It)DUQ3 z0Bo$SN7B{>Do6x{U>|m$F&LZ+ya-;%#$jxh`BW1L2?@Vyg2MQRbu(wG5SVsAg)mU5 zuOY3{We-)fkDiU)LrrL=1v50(-#4?1)RJC#TSG_e>9X)yO?>*Nv%d_S$sOb(y$BzR z!`&)-uzVhVpYWH%0_O`C+t9y-<`(w0uNqdZHfYQ6fBWDf-O%x(53l!!*xr4kecX#o z&2`#tUVrPV9Q_feh&|-Ar!L2Dy`W((O^>VYaOL8nj;2Rjlts@s_oUzRD*o6#TuSg3 z7T)`|B8y3j+0!^Y(iFYC>|vy{(b59vB+Cwce;>7Dp|5AT*yF1=%~3ocoKvc|U**oH zllH5hyba3V>SWGYu2U^tyX;_T==#a_V`yW1-A^5VcRH9nO&%1p7lFn!3lqf9Z*6Q4cI8@@B48ihN$hqBu7Snw@|Q=u7NJB zuS+sPER-&=Piz!UtNlxQ_B#uu4yyr$2L?+a%7z*pMqv)(60&RU67xh-UKTS}qrHc$*P%Mf!#R=eAa7E>xZ9MSBINTY&?fKY1;%wQl3ZCA+^I zS!5vb#rM_D)}tQza{{zVd)0)3TSltYLd08xQVTo3l^qj!-(7U6( zhQ>ZW7%LV1PxsyJqj}$0PR38x&aG}Xs1<@eS;h*ODj1lmBD*Y`f5}*}!c2%>qG}1O z7HX=NvP}~(Rlrce4s0Bls`-D;RQm%;60Wl?KDlYktNnbn(uv?mvRv2O{@3rfzqKimwr!r67^*zwmy#Fhbkb&0ot((+ zxvFNoDxdcR^U{%iZMRFSzpi#EF1V|%ar#(SPfbpS@|GK;NuSB$kqxig)>ii%IOofG zdcgC2pgc|eP>|C^U-87bp3Geosz>#ynEc?`A?I7(`32T*8#60(vW5iOjXA|<`#jR* zbV>;?Fz)J(EhxFM$xU_N!PoCCvJ=}p3;fkW4qD+gsvIw!aL*lljLiuC>U{f~Q_1H! zsSn>;9G(A0Z~fH<s1MiBn9$2q~Z0n^r8#$x{ zL8RXa3l2b?Dqf!Lvp4J*(F(@MNOFLci6n!#cr%DR(+d|#8=lLW$Ex4wu{#|c`m+Jc z3^jxr1U@?utm2qq;DZ4(3H763*jSIG3v860F0fL%Q>ZS2{+%w~KXaarGnV225E4Mcp+lN5f^Gmn`eds?SRcktWeCTka!I}GTdfj94ltH%hA zW5Zz;&Q6<4&nG#>>{-C|;EP(%-njMcM`CSL?xj5(JwIZ2u+`7*QB|ec6OFJu*|Jhb ztk*lK+-F}5av4Q;;{y~D>@qTqB|Bn$InRc=Z!SGf)p;Pp_jNmS&eM1u&u(#e*{7SE z1HW8r4X`JyKl#YQ5&L$d`NsQBB>0s|?c01!B*$xhV+BtD$1S$0Sq@B% z4=jY33NgeH;)FTCV}|Ydr5}X&vGPKQ*M!M}Me#gSTL=jZjuWjIEChsQE{XL)(}|*>qn0cv6s;ZOP*65D=s|O+3VHc zk+@6Ruhl>@pnHeB;}-1;mHM`FZ-pgfA^&azU!@!Qzwx}y6x`$*DJbS*wrY+;A)|AY zcC~RZ`hfR#@71}Ri)J}+_( z>f+VsiIhtvDLxhS?0#N6`Fw$JWpMsCH%a2E22Q2qr#r3Gsm(ibcD8Qr+M{$#z^`z) z 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 NuJ`008P}Sd{6BG-`tbk& literal 0 HcmV?d00001 diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/System.IO.Compression.xml new file mode 100644 index 0000000..a7c74c9 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Specifies values that indicate whether a compression operation emphasizes speed or compression size. + + + The compression operation should complete as quickly as possible, even if the resulting file is not optimally compressed. + + + No compression should be performed on the file. + + + The compression operation should be optimally compressed, even if the operation takes a longer time to complete. + + + Specifies whether to compress or decompress the underlying stream. + + + Compresses the underlying stream. + + + Decompresses the underlying stream. + + + Provides methods and properties for compressing and decompressing streams by using the Deflate algorithm. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream is opened and supports reading; otherwise, false. + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were read into the byte array. + The array to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or - The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This operation is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This operation is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + + + Provides methods and properties used to compress and decompress streams. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to write the compressed data to. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to write the compressed data to. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream the compressed or decompressed data is written to. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid enumeration value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream the compressed or decompressed data is written to. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream supports reading and is not closed; otherwise, false. + + + + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were decompressed into the byte array. If the end of the stream has been reached, zero or the number of bytes read is returned. + The array used to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or -The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This property is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This property is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + The write operation cannot be performed because the stream is closed. + + + Represents a package of compressed files in the zip archive format. + + + Initializes a new instance of the class from the specified stream. + The stream that contains the archive to be read. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initializes a new instance of the class from the specified stream and with the specified mode. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initializes a new instance of the class on the specified stream for the specified mode, and optionally leaves the stream open. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + true to leave the stream open after the object is disposed; otherwise, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initializes a new instance of the class on the specified stream for the specified mode, uses the specified encoding for entry names, and optionally leaves the stream open. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + true to leave the stream open after the object is disposed; otherwise, false. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Creates an empty entry that has the specified path and entry name in the zip archive. + An empty entry in the zip archive. + A path, relative to the root of the archive, that specifies the name of the entry to be created. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Creates an empty entry that has the specified entry name and compression level in the zip archive. + An empty entry in the zip archive. + A path, relative to the root of the archive, that specifies the name of the entry to be created. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Releases the resources used by the current instance of the class. + + + Called by the and methods to release the unmanaged resources used by the current instance of the class, and optionally finishes writing the archive and releases the managed resources. + true to finish writing the archive and release unmanaged and managed resources; false to release only unmanaged resources. + + + Gets the collection of entries that are currently in the zip archive. + The collection of entries that are currently in the zip archive. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Retrieves a wrapper for the specified entry in the zip archive. + A wrapper for the specified entry in the archive; null if the entry does not exist in the archive. + A path, relative to the root of the archive, that identifies the entry to retrieve. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Gets a value that describes the type of action the zip archive can perform on entries. + One of the enumeration values that describes the type of action (read, create, or update) the zip archive can perform on entries. + + + Represents a compressed file within a zip archive. + + + Gets the zip archive that the entry belongs to. + The zip archive that the entry belongs to, or null if the entry has been deleted. + + + Gets the compressed size of the entry in the zip archive. + The compressed size of the entry in the zip archive. + The value of the property is not available because the entry has been modified. + + + Deletes the entry from the zip archive. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Gets the relative path of the entry in the zip archive. + The relative path of the entry in the zip archive. + + + Gets or sets the last time the entry in the zip archive was changed. + The last time the entry in the zip archive was changed. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Gets the uncompressed size of the entry in the zip archive. + The uncompressed size of the entry in the zip archive. + The value of the property is not available because the entry has been modified. + + + Gets the file name of the entry in the zip archive. + The file name of the entry in the zip archive. + + + Opens the entry from the zip archive. + The stream that represents the contents of the entry. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Retrieves the relative path of the entry in the zip archive. + The relative path of the entry, which is the value stored in the property. + + + Specifies values for interacting with zip archive entries. + + + Only creating new archive entries is permitted. + + + Only reading archive entries is permitted. + + + Both read and write operations are permitted for archive entries. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/de/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/de/System.IO.Compression.xml new file mode 100644 index 0000000..c665eda --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/de/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Gibt Werte an, die angeben, ob ein Komprimierungsvorgang die Geschwindigkeit oder den Komprimierungsumfang hervorhebt. + + + Der Komprimierungsvorgang soll so schnell wie möglich beendet werden, auch wenn die resultierende Datei nicht optimal komprimiert wird. + + + Bei der Datei sollte keine Komprimierung erfolgen. + + + Der Komprimierungsvorgang soll optimal ausgeführt werden, auch wenn der Vorgang eine längere Zeit in Anspruch nimmt. + + + Gibt an, ob der zugrunde liegende Stream komprimiert oder dekomprimiert werden soll. + + + Komprimiert den zugrunde liegenden Stream. + + + Dekomprimiert den zugrunde liegenden Stream. + + + Stellt Methoden und Eigenschaften zum Komprimieren und Dekomprimieren von Streams mithilfe des Deflate-Algorithmus bereit. + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsgrads. + Der zu komprimierende Stream. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und der Komprimierungsebene und lässt den Stream optional geöffnet. + Der zu komprimierende Stream. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + true, um das Streamobjekt offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsmodus. + Der zu komprimierende oder zu dekomprimierende Stream. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und des Komprimierungsmodus und lässt den Stream optional geöffnet. + Der zu komprimierende oder zu dekomprimierende Stream. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + true, um den Stream offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Ruft einen Verweis auf den zugrunde liegenden Stream ab. + Ein Streamobjekt, das den zugrunde liegenden Stream darstellt. + Der zugrunde liegende Stream ist geschlossen. + + + Ruft einen Wert ab, der angibt, ob der Stream Lesevorgänge unterstützt, während eine Datei dekomprimiert wird. + true, wenn der -Wert Decompress ist und der zugrunde liegende Stream geöffnet ist und Lesevorgänge unterstützt, andernfalls false. + + + Ruft einen Wert, der angibt, ob der Stream Suchvorgänge unterstützt. + false in allen Fällen. + + + Ruft einen Wert, der angibt, ob der Stream Schreibvorgänge unterstützt. + true, wenn der -Wert gleich Compress ist und der zugrunde liegende Stream Schreibvorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + Gibt die von verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. + true, um sowohl verwaltete als auch nicht verwaltete Ressourcen freizugeben, false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Die aktuelle Implementierung dieser Methode hat keine Funktion. + Der Stream ist geschlossen. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Liest eine Anzahl von dekomprimierten Bytes in das angegebene Bytearray. + Die Anzahl von Bytes, die in das Bytearray gelesen wurden. + Das Array zum Speichern von dekomprimierten Bytes. + Das Byteoffset in , an dem die gelesenen Bytes platziert werden. + Die maximale Anzahl der zu lesenden dekomprimierten Bytes. + + ist null. + Der -Wert war Compress, als das Objekt erstellt wurde.- oder - Der zugrunde liegende Stream unterstützt keine Lesevorgänge. + + oder ist kleiner als 0.- oder - Die -Länge minus des Indexausgangspunkts ist kleiner als . + Die Daten haben ein ungültiges Format. + Der Stream ist geschlossen. + + + Dieser Vorgang wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Die Position im Stream. + Einer der -Werte. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Dieser Vorgang wird nicht unterstützt und löst immer eine aus. + Die Länge des Streams. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Schreibt komprimierte Bytes aus dem angegebenen Bytearray in den zugrunde liegenden Stream. + Der Puffer, der die zu komprimierenden Daten enthält. + Das Byteoffset in , aus dem die Bytes gelesen werden. + Die maximale Anzahl der zu schreibenden Bytes. + + + Stellt Methoden und Eigenschaften bereit, die zum Komprimieren und Dekomprimieren von Streams verwendet werden. + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsgrads. + Der Stream, in den die komprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und der Komprimierungsebene und lässt den Stream optional geöffnet. + Der Stream, in den die komprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + true, um das Streamobjekt offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsmodus. + Der Stream, in den die komprimierten oder dekomprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + + ist null. + + ist kein gültiger -Enumerationswert.- oder - ist und ist false.- oder - ist und ist false. + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und des Komprimierungsmodus und lässt den Stream optional geöffnet. + Der Stream, in den die komprimierten oder dekomprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + true, um den Stream offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Ruft einen Verweis auf den zugrunde liegenden Stream ab. + Ein Streamobjekt, das den zugrunde liegenden Stream darstellt. + Der zugrunde liegende Stream ist geschlossen. + + + + + + Ruft einen Wert ab, der angibt, ob der Stream Lesevorgänge unterstützt, während eine Datei dekomprimiert wird. + true, wenn der -Wert gleich Decompress, ist und der zugrunde liegende Stream Lesevorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + + + + Ruft einen Wert, der angibt, ob der Stream Suchvorgänge unterstützt. + false in allen Fällen. + + + Ruft einen Wert, der angibt, ob der Stream Schreibvorgänge unterstützt. + true, wenn der -Wert gleich Compress ist und der zugrunde liegende Stream Schreibvorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + + + + Gibt die von verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. + true, um sowohl verwaltete als auch nicht verwaltete Ressourcen freizugeben, false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Die aktuelle Implementierung dieser Methode hat keine Funktion. + Der Stream ist geschlossen. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Liest eine Anzahl von dekomprimierten Bytes in das angegebene Bytearray. + Die Anzahl der Bytes, die im Bytearray dekomprimiert wurden.Wenn das Ende des Streams erreicht worden ist, wird 0 oder die Anzahl der gelesenen Bytes zurückgegeben. + Das Array, das zum Speichern von dekomprimierten Bytes verwendet wird. + Das Byteoffset in , an dem die gelesenen Bytes platziert werden. + Die maximale Anzahl der zu lesenden dekomprimierten Bytes. + + ist null. + Der -Wert war Compress, als das Objekt erstellt wurde.- oder -Der zugrunde liegende Stream unterstützt keine Lesevorgänge. + + oder ist kleiner als 0.- oder - Die -Länge minus des Indexausgangspunkts ist kleiner als . + Die Daten haben ein ungültiges Format. + Der Stream ist geschlossen. + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Die Position im Stream. + Einer der -Werte. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Die Länge des Streams. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Schreibt komprimierte Bytes aus dem angegebenen Bytearray in den zugrunde liegenden Stream. + Der Puffer, der die zu komprimierenden Daten enthält. + Das Byteoffset in , aus dem die Bytes gelesen werden. + Die maximale Anzahl der zu schreibenden Bytes. + Der Schreibvorgang kann nicht ausgeführt werden, da der Stream geschlossen ist. + + + Stellt ein Paket komprimierter Dateien im Zip-Archiv-Format dar. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream. + Ein Stream, der das zu lesende Archiv enthält. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initialisiert eine neue Instanz der -Klasse aus dem angegebenen Stream und mit dem angegebenen Modus. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream und den angegebenen Modus und lässt den Stream optional geöffnet. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + true, um den Datenstrom geöffnet zu lassen, nach dem das -Objekt freigegeben wurde; andernfalls false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream und den angegebenen Modus und verwendet dabei die angegebene Codierung für Eintragsnamen und lässt den Stream optional geöffnet. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + true, um den Datenstrom geöffnet zu lassen, nach dem das -Objekt freigegeben wurde; andernfalls false. + Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen in diesem Archiv verwendet werden soll.Geben Sie einen Wert für diesen Parameter nur an, wenn eine Codierung für die Interoperabilität mit ZIP-Archiv-Tools und -Bibliotheken erforderlich ist, die die UTF-8-Codierung für Eintragsnamen nicht unterstützen. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Erstellt einen leeren Eintrag, der den angegebenen Pfad und Eintragsnamen im ZIP-Archiv Ebene verwendet. + Ein leerer Eintrag im ZIP-Archiv. + Ein Pfad relativ zum Stamm des Archivs, der den Namen des Eintrags angibt, der erstellt werden soll. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Erstellt einen leeren Eintrag, der den angegebenen Eintragsnamen und die Komprimierung im ZIP-Archiv Ebene verwendet. + Ein leerer Eintrag im ZIP-Archiv. + Ein Pfad relativ zum Stamm des Archivs, der den Namen des Eintrags angibt, der erstellt werden soll. + Einer der Enumerationswerte, der angibt, ob Geschwindigkeit oder Komprimierungseffektivität priorisiert wird, wenn der Eintrag erstellt. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Gibt alle von der aktuellen Instanz der -Klasse verwendeten Ressourcen frei. + + + Wird von den und -Methoden aufgerufen, um die nicht verwalteten Ressourcen freizugeben, die von der aktuellen Instanz der -Klasse verwendet werden, und beendet optional das Schreiben ins Archiv und gibt die verwalteten Ressourcen frei. + true, um das Schreiben des Archivs abzuschließen und sowohl nicht verwaltete als auch verwaltete Ressourcen freizugeben; false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Ruft die Auflistung von Einträgen ab, die das ZIP-Archiv momentan enthält. + Die Auflistung von Einträgen, die das ZIP-Archiv momentan enthält. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ruft einen Wrapper für den angegebenen Eintrag im Zip-Archiv ab. + Ein Wrapper für den angegebenen Eintrag im Archiv. null, wenn der Eintrag nicht im Archiv vorhanden ist. + Ein Pfad relativ zum Stamm des Archivs, das den Eintrag identifiziert, der abgerufen werden soll. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ruft einen Wert ab, der den Typ der Aktion beschreibt, die das ZIP-Archiv für Einträge ausführen kann. + Einer der Enumerationswerte, der den Typ der Aktion (Lesen, Erstellen oder Update) beschreibt, die das Zip-Archiv bei Einträgen ausführen kann. + + + Stellt eine komprimierte Datei in einem Zip-Archiv dar. + + + Ruft das Zip-Archiv ab, zu dem der Eintrag gehört. + Das Zip-Archiv, zu dem der Eintrag gehört, oder null, wenn der Eintrag gelöscht wurde. + + + Ruft die komprimierte Größe des unkomprimierten Eintrags im ZIP-Archiv ab. + Die Größe des komprimierten Eintrags im ZIP-Archiv. + The value of the property is not available because the entry has been modified. + + + Löscht den Eintrag aus dem Zip-Archiv. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Ruft den relativen Pfad des Eintrags im ZIP-Archiv ab. + Der relative Pfad des Eintrags im Zip-Archiv. + + + Ruft den letzten Zeitpunkt ab, zu dem der Eintrag im Zip-Archiv geändert wurde, oder legt diesen fest. + Der letzte Zeitpunkt, an dem der Eintrag im ZIP-Archiv geändert wurde. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Ruft die Größe des unkomprimierten Eintrags im ZIP-Archiv ab. + Die Größe des unkomprimierten Eintrags im ZIP-Archiv. + The value of the property is not available because the entry has been modified. + + + Ruft den Dateinamen des Eintrags im ZIP-Archiv ab. + Der Dateiname des Eintrags im ZIP-Archiv. + + + Öffnet den Eintrag aus dem Zip-Archiv. + Der Stream, der den Inhalt des Eintrags darstellt. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Ruft den relativen Pfad des Eintrags im Zip-Archiv ab. + Der relative Pfad des Eintrags, der in der -Eigenschaft gespeichert ist. + + + Gibt Werte für die Interaktion mit Zip-Archiveinträgen an. + + + Nur das Erstellen neuer Archiveinträge ist zulässig. + + + Nur das Lesen von Archiveinträgen ist zulässig. + + + Lese- und Schreibvorgänge sind für die Archiveinträge zulässig. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/es/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/es/System.IO.Compression.xml new file mode 100644 index 0000000..7c623af --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/es/System.IO.Compression.xml @@ -0,0 +1,420 @@ + + + + System.IO.Compression + + + + Especifica valores que indican si una operación de compresión hace hincapié en la velocidad o en el tamaño de la compresión. + + + La operación de compresión debe completarse lo antes posible, aunque el archivo resultante no esté comprimido de forma óptima. + + + No debe comprimirse el archivo. + + + La operación de compresión se debe comprimir de forma óptima, incluso aunque la operación tarde más tiempo en completarse. + + + Especifica si se comprime o descomprime la secuencia subyacente. + + + Comprime la secuencia subyacente. + + + Descomprime la secuencia subyacente. + + + Proporciona métodos y propiedades para comprimir y descomprimir secuencias usando el algoritmo Deflate. + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados. + Secuencia que se va a comprimir. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia que se va a comprimir. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + true para mantener el objeto de secuencia abierto después de desechar el objeto ; en caso contrario, false. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados. + Secuencia que se va a comprimir o descomprimir. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia que se va a comprimir o descomprimir. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + true para mantener la secuencia abierta después de desechar el objeto ; en caso contrario, false. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Obtiene una referencia a la secuencia subyacente. + Un objeto de secuencia que representa la secuencia subyacente. + La secuencia subyacente está cerrada. + + + Obtiene un valor que indica si la secuencia admite operaciones de lectura mientras se descomprime un archivo. + Es true si el valor es Decompress, y la secuencia subyacente está abierta y admite operaciones de lectura; de lo contrario, es false. + + + Obtiene un valor que indica si la secuencia admite operaciones de búsqueda. + false en todos los casos. + + + Obtiene un valor que indica si la secuencia admite operaciones de escritura. + true si el valor de es Compress y la secuencia subyacente admite operaciones de escritura y no está cerrada; en caso contrario, false. + + + Libera los recursos no administrados que usa y libera los recursos administrados de forma opcional. + Es true para liberar tanto recursos administrados como no administrados; es false para liberar únicamente recursos no administrados. + + + La implementación actual de este método no tiene funcionalidad. + La secuencia está cerrada. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Introduce varios bytes descomprimidos leídos en la matriz de bytes especificada. + Número de bytes leídos de la matriz de bytes. + Matriz para almacenar los bytes descomprimidos. + Desplazamiento de bytes en donde se colocarán los bytes leídos. + Número máximo de bytes descomprimidos que se van a leer. + El valor de es null. + El valor era Compress cuando se creó el objeto.o bien La secuencia subyacente no admite operaciones de lectura. + + o es menor que cero.o bien longitud menos el punto inicial del índice es menor que . + El formato de los datos no es válido. + La secuencia está cerrada. + + + Esta operación no se admite y siempre produce una excepción . + Un valor largo. + Ubicación en la secuencia. + Uno de los valores de . + Esta propiedad no se admite en esta secuencia. + + + Esta operación no se admite y siempre produce una excepción . + Longitud de la secuencia. + Esta propiedad no se admite en esta secuencia. + + + Escribe los bytes comprimidos en la secuencia subyacente de la matriz de bytes especificada. + Búfer que contiene los datos que se van a comprimir. + Desplazamiento de bytes en donde se leerán los bytes. + Número máximo de bytes que se pueden escribir. + + + Proporciona los métodos y propiedades que permiten comprimir y descomprimir secuencias. + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados. + Secuencia en la que se van a escribir los datos comprimidos. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia en la que se van a escribir los datos comprimidos. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + true para mantener el objeto de secuencia abierto después de desechar el objeto ; en caso contrario, false. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados. + Secuencia en la que se escriben los datos comprimidos o descomprimidos. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + El valor de es null. + + no es válida valor de enumeración.o bien es y es false.o bien es y es false. + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia en la que se escriben los datos comprimidos o descomprimidos. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + true para mantener la secuencia abierta después de desechar el objeto ; en caso contrario, false. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Obtiene una referencia a la secuencia subyacente. + Un objeto de secuencia que representa la secuencia subyacente. + La secuencia subyacente está cerrada. + + + + + + Obtiene un valor que indica si la secuencia admite operaciones de lectura mientras se descomprime un archivo. + true si el valor de es Decompress, y la secuencia subyacente admite operaciones de lectura y no está cerrada; en caso contrario, false. + + + + + + Obtiene un valor que indica si la secuencia admite operaciones de búsqueda. + false en todos los casos. + + + Obtiene un valor que indica si la secuencia admite operaciones de escritura. + true si el valor de es Compress y la secuencia subyacente admite operaciones de escritura y no está cerrada; en caso contrario, false. + + + + + + Libera los recursos no administrados que usa y libera los recursos administrados de forma opcional. + Es true para liberar tanto recursos administrados como no administrados; es false para liberar únicamente recursos no administrados. + + + La implementación actual de este método no tiene funcionalidad. + La secuencia está cerrada. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Introduce varios bytes descomprimidos leídos en la matriz de bytes especificada. + El número de bytes que se han descomprimido en la matriz de bytes.Si se ha llegado al final de la secuencia, se devuelve cero o el número de bytes leídos. + Matriz que se utiliza para almacenar los bytes descomprimidos. + Desplazamiento de bytes en donde se colocarán los bytes leídos. + Número máximo de bytes descomprimidos que se van a leer. + El valor de es null. + El valor era Compress cuando se creó el objeto.o bienLa secuencia subyacente no admite operaciones de lectura. + + o es menor que cero.o bien longitud menos el punto inicial del índice es menor que . + El formato de los datos no es válido. + La secuencia está cerrada. + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Ubicación en la secuencia. + Uno de los valores de . + Esta propiedad no se admite en esta secuencia. + + + Esta propiedad no se admite y siempre produce una excepción . + Longitud de la secuencia. + Esta propiedad no se admite en esta secuencia. + + + Escribe los bytes comprimidos en la secuencia subyacente de la matriz de bytes especificada. + Búfer que contiene los datos que se van a comprimir. + Desplazamiento de bytes en donde se leerán los bytes. + Número máximo de bytes que se pueden escribir. + La operación de escritura no se puede realizar porque la secuencia está cerrada. + + + Representa un paquete de archivos comprimidos en formato de archivo zip. + + + Inicializa una nueva instancia de la clase a partir de la secuencia especificada. + Secuencia que contiene el archivo que se va a leer. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Inicializa una nueva instancia de la clase a partir de la secuencia especificada y con el modo especificado. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inicializa una nueva instancia de la clase en el flujo especificado para el modo especificado y, opcionalmente, deja el flujo abierto. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + true para dejar el flujo abierto después de desechar el objeto ; de lo contrario, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inicializa una nueva instancia de la clase en el flujo especificado para el modo especificado, usa la codificación especificada para los nombres de entrada y opcionalmente deja el flujo abierto. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + true para dejar el flujo abierto después de desechar el objeto ; de lo contrario, false. + Codificación que se va a usar al leer o escribir nombres de entrada en este archivo.Especifique un valor para este parámetro únicamente cuando se necesite una codificación para la interoperabilidad con herramientas y bibliotecas de archivos zip que no admiten la codificación UTF-8 para los nombres de entrada. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crea una entrada vacía en el archivo zip con la ruta de acceso y el nombre de entrada especificados. + Una entrada vacía en el archivo zip. + Ruta de acceso, relativa a la raíz del archivo, que especifica el nombre de la entrada que se va a crear. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crea una entrada vacía en el archivo zip con el nombre de entrada y el nivel de compresión especificados. + Una entrada vacía en el archivo zip. + Ruta de acceso, relativa a la raíz del archivo, que especifica el nombre de la entrada que se va a crear. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Libera los recursos utilizados por la instancia actual de la clase . + + + Llamado por los métodos y para liberar los recursos no administrados utilizados por la instancia actual de la clase de , y termina opcionalmente de escribir el archivo y libera los recursos administrados. + true para terminar de escribir el archivo y liberar recursos no administrados y administrados; false para liberar solo recursos no administrados. + + + Obtiene la colección de entradas que están actualmente en el archivo zip. + La colección de entradas que están actualmente en el archivo zip. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Recupera un contenedor para la entrada especificada en el archivo zip. + Un contenedor para la entrada especificada en el archivo; null si la entrada no existe en el archivo. + Ruta de acceso, relativa a la raíz del archivo, que identifica la entrada a recuperar. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Obtiene un valor que describe el tipo de acción que el archivo zip puede realizar en las entradas. + Uno de los valores de enumeración que describe el tipo de acción (lectura, creación o actualización) que puede realizar el archivo zip en las entradas. + + + Representa un archivo comprimido incluido en un archivo zip. + + + Obtiene el archivo zip al que pertenece la entrada. + El archivo zip al que pertenece la entrada o null si se ha eliminado la entrada. + + + Obtiene el tamaño comprimido de la entrada en el archivo zip. + Tamaño comprimido de la entrada en el archivo zip. + The value of the property is not available because the entry has been modified. + + + Elimina la entrada del archivo zip. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Obtiene la ruta de acceso relativa de la entrada en el archivo zip. + Ruta de acceso relativa de la entrada en el archivo zip. + + + Obtiene o establece la última vez que se cambió la entrada en el archivo zip. + Última vez que la entrada del archivo zip se cambió. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Obtiene el tamaño descomprimido de la entrada en el archivo zip. + Tamaño descomprimido de la entrada en el archivo zip. + The value of the property is not available because the entry has been modified. + + + Obtiene el nombre de archivo de la entrada en el archivo zip. + Nombre de archivo de la entrada en el archivo zip. + + + Abre la entrada desde el archivo zip. + La secuencia que representa el contenido de la entrada. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Recupera la ruta de acceso relativa de la entrada en el archivo zip. + La ruta de acceso relativa de la entrada, que es el valor almacenado en la propiedad . + + + Especifica los valores para interactuar con entradas de archivo zip. + + + Solo se permite crear nuevas entradas de archivo. + + + Solo se permite leer entradas del archivo. + + + Ambas operaciones de lectura y escritura se permiten para las entradas del archivo. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/fr/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/fr/System.IO.Compression.xml new file mode 100644 index 0000000..c26ff35 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/fr/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Spécifie les valeurs qui indiquent si une opération de compression souligne la rapidité ou la taille de compression. + + + L'opération de compression doit s'exécuter aussi rapidement que possible, même si le fichier résultant n'est pas compressé de manière optimale. + + + Aucune compression ne doit être exécutée sur le fichier. + + + L'opération de compression doit être compressée de manière optimale, même si elle prend plus de temps. + + + Spécifie s'il faut compresser ou décompresser le flux sous-jacent. + + + Compresse le flux sous-jacent. + + + Décompresse le flux sous-jacent. + + + Fournit des méthodes et des propriétés pour compresser et décompresser des flux à l'aide de l'algorithme Deflate. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés. + Flux à compresser. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux à compresser. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + true pour maintenir l'objet de flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés. + Flux à compresser ou à décompresser. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux à compresser ou à décompresser. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Obtient une référence au flux sous-jacent. + Objet de flux qui représente le flux sous-jacent. + Le flux sous-jacent est fermé. + + + Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. + true si la valeur est Decompress, que le flux sous-jacent est ouvert et qu'il prend en charge la lecture ; sinon, false. + + + Obtient une valeur indiquant si le flux prend en charge la recherche. + false dans tous les cas. + + + Obtient une valeur indiquant si le flux prend en charge l'écriture. + true si la valeur de est Compress, que le flux sous-jacent prend en charge l'écriture et qu'il n'est pas fermé ; sinon, false. + + + Libère les ressources non managées utilisées par et libère éventuellement les ressources managées. + true pour libérer les ressources managées et non managées ; false pour ne libérer que les ressources non managées. + + + L'implémentation actuelle de cette méthode n'a aucune fonctionnalité. + Le flux est fermé. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. + Nombre d'octets qui ont été lus dans le tableau d'octets. + Tableau utilisé pour stocker les octets décompressés. + Dans , décalage d'octet auquel les octets lus seront placés. + Nombre maximal d'octets décompressés à lire. + + a la valeur null. + La valeur était Compress lorsque l'objet a été créé.ou Le flux sous-jacent ne prend pas en charge la lecture. + + ou est inférieur à zéro.ouLa longueur de moins le point de départ de l'index est inférieure à . + Le format des données n'est pas valide. + Le flux est fermé. + + + Cette opération n'est pas prise en charge et lève toujours . + Valeur Long. + Emplacement dans le flux. + Une des valeurs de . + Cette propriété n'est pas prise en charge sur ce flux. + + + Cette opération n'est pas prise en charge et lève toujours . + Longueur du flux. + Cette propriété n'est pas prise en charge sur ce flux. + + + Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. + Mémoire tampon qui contient les données à compresser. + Dans , décalage d'octet à partir duquel les octets seront lus. + Nombre maximal d'octets à écrire. + + + Fournit les méthodes et les propriétés utilisées pour compresser et décompresser des flux. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés. + Flux dans lequel écrire les données compressées. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux dans lequel écrire les données compressées. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + true pour maintenir l'objet de flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés. + Flux dans lequel les données compressées ou décompressées sont écrites. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + + a la valeur null. + + n'est pas une valeur d'énumération valide.ou est et est false.ou est et est false. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux dans lequel les données compressées ou décompressées sont écrites. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Obtient une référence au flux sous-jacent. + Objet de flux qui représente le flux sous-jacent. + Le flux sous-jacent est fermé. + + + + + + Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. + true si la valeur de est Decompress,, que le flux sous-jacent prend en charge la lecture et qu'il n'est pas fermé ; sinon, false. + + + + + + Obtient une valeur indiquant si le flux prend en charge la recherche. + false dans tous les cas. + + + Obtient une valeur indiquant si le flux prend en charge l'écriture. + true si la valeur de est Compress, que le flux sous-jacent prend en charge l'écriture et qu'il n'est pas fermé ; sinon, false. + + + + + + Libère les ressources non managées utilisées par l'objet et libère éventuellement les ressources managées. + true pour libérer les ressources managées et non managées ; false pour ne libérer que les ressources non managées. + + + L'implémentation actuelle de cette méthode n'a aucune fonctionnalité. + Le flux est fermé. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. + Nombre d'octets qui ont été décompressés dans le tableau d'octets.Si la fin du flux a été atteinte, zéro ou le nombre d'octets lus est retourné. + Tableau utilisé pour décompresser les octets. + Dans , décalage d'octet auquel les octets lus seront placés. + Nombre maximal d'octets décompressés à lire. + + a la valeur null. + La valeur était Compress lorsque l'objet a été créé.ouLe flux sous-jacent ne prend pas en charge la lecture. + + ou est inférieur à zéro.ouLa longueur de moins le point de départ de l'index est inférieure à . + Le format des données n'est pas valide. + Le flux est fermé. + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Emplacement dans le flux. + Une des valeurs de . + Cette propriété n'est pas prise en charge sur ce flux. + + + Cette propriété n'est pas prise en charge et lève toujours . + Longueur du flux. + Cette propriété n'est pas prise en charge sur ce flux. + + + Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. + Mémoire tampon qui contient les données à compresser. + Dans , décalage d'octet à partir duquel les octets seront lus. + Nombre maximal d'octets à écrire. + L'opération d'écriture ne peut pas être exécutée car le flux est fermé. + + + Représente un package de fichiers compressés au format d'archivage zip. + + + Initialise une nouvelle instance de la classe à partir du flux spécifié. + Flux qui contient l'archive à lire. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initialise une nouvelle instance de la classe à partir du flux spécifié et avec le mode spécifié. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialise une nouvelle instance de la classe sur le flux de données spécifié pour le mode spécifié, et laisse éventuellement le flux ouvert. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialise une nouvelle instance de la classe sur le flux spécifié pour le mode spécifié, utilise l'encodage spécifié pour les noms d'entrée, et permet éventuellement de laisser le flux ouvert. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + Encodage à utiliser lors de la lecture ou de l'écriture des noms d'entrée dans cette archive.Spécifie une valeur pour ce paramètre seulement quand un encodage est obligatoire pour l'interopérabilité avec les outils et les bibliothèques d'archivage zip qui ne prennent pas en charge l'encodage UTF-8 pour les noms d'entrée. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crée une entrée vide qui a le chemin d'accès et le nom d'entrée spécifiés dans l'archive zip. + Entrée vide dans l'archive zip. + Chemin d'accès relatif à la racine de l'archive, qui spécifie le nom de l'entrée à créer. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crée une entrée vide qui a le nom d'entrée et le niveau de compression spécifiés dans l'archive zip. + Entrée vide dans l'archive zip. + Chemin d'accès relatif à la racine de l'archive, qui spécifie le nom de l'entrée à créer. + Une des valeurs d'énumération qui indique s'il faut privilégier la rapidité ou l'efficacité de la compression lors de la création de l'entrée. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Libère les ressources utilisées par l'instance actuelle de la classe . + + + Appelée par les méthodes et pour libérer les ressources non managées utilisées par l'instance actuelle de la classe , et éventuellement finit d'écrire l'archive et libère les ressources managées. + true pour finir l'écriture de l'archive et libérer les ressources managées et non managées ; false pour libérer seulement des ressources non managées. + + + Obtient la collection d'entrées figurant actuellement dans l'archive zip. + Collection d'entrées figurant actuellement dans l'archive zip. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Récupère un wrapper pour l'entrée spécifiée dans l'archive zip. + Wrapper pour l'entrée spécifiée dans l'archive ; null si l'entrée n'existe pas dans l'archive. + Chemin d'accès relatif à la racine de l'archive, qui identifie l'entrée à récupérer. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Obtient une valeur qui décrit le type d'action que l'archive zip peut effectuer sur des entrées. + Une des valeurs d'énumération qui décrit le type d'action (lecture, création ou mise à jour) que l'archive zip peut effectuer sur les entrées. + + + Représente un fichier compressé dans une archive zip. + + + Obtient l'archive zip à laquelle l'entrée appartient. + Archive zip à laquelle l'entrée appartient, ou null si l'entrée a été supprimée. + + + Obtient la taille compressée de l'entrée dans l'archive zip. + Taille compressée de l'entrée dans l'archive zip. + The value of the property is not available because the entry has been modified. + + + Supprime l'entrée de l'archive zip. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Obtient le chemin d'accès relatif de l'entrée dans l'archive zip. + Chemin d'accès relatif de l'entrée dans l'archive zip. + + + Obtient ou définit la date de dernière modification de l'entrée dans l'archive zip. + Date/heure à laquelle l'entrée a été modifiée pour la dernière fois dans l'archive zip. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Obtient la taille décompressée de l'entrée dans l'archive zip. + Taille décompressée de l'entrée dans l'archive zip. + The value of the property is not available because the entry has been modified. + + + Obtient le nom du fichier de l'entrée dans l'archive zip. + Nom de fichier de l'entrée dans l'archive zip. + + + Ouvre l'entrée à partir de l'archive zip. + Flux qui représente le contenu de l'entrée. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Récupère le chemin d'accès relatif de l'entrée dans l'archive zip. + Chemin d'accès relatif de l'entrée, qui est la valeur stockée dans la propriété . + + + Spécifie les valeurs pour interagir avec les entrées d'archive ZIP. + + + Seule la création de nouvelles entrées d'archivage est autorisée. + + + Seule la lecture des entrées d'archivage est autorisée. + + + Les opérations de lecture et d'écriture sont autorisées pour les entrées d'archivage. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/it/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/it/System.IO.Compression.xml new file mode 100644 index 0000000..65f1d34 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/it/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Specifica i valori che indicano se un'operazione di compressione privilegia le dimensioni di compressione o la velocità. + + + L'operazione di compressione deve essere completata il più rapidamente possibile, anche se il file risultante non è compresso in modo ottimale. + + + Non deve essere eseguita alcuna compressione del file. + + + L'operazione di compressione deve essere compressa in modo ottimale, anche se l'operazione richiede più tempo per il completamento. + + + Specifica se comprimere o decomprimere il flusso sottostante. + + + Comprime il flusso sottostante. + + + Decomprime il flusso sottostante. + + + Fornisce metodi e proprietà per la compressione e la decompressione dei flussi mediante l'algoritmo Deflate. + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. + Flusso da comprimere. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. Facoltativamente mantiene aperto il flusso. + Flusso da comprimere. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + true per mantenere l'oggetto flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. + Flusso da comprimere o decomprimere. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. Facoltativamente mantiene aperto il flusso. + Flusso da comprimere o decomprimere. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Ottiene un riferimento al flusso sottostante. + Oggetto flusso che rappresenta il flusso sottostante. + Il flusso sottostante è chiuso. + + + Ottiene un valore che indica se il flusso supporta la lettura durante la decompressione di un file. + true se il valore di è Decompress e il flusso sottostante è aperto e supporta la lettura; in caso contrario, false. + + + Ottiene un valore che indica se il flusso supporta la ricerca. + false in tutti i casi. + + + Ottiene un valore che indica se il flusso supporta la scrittura. + true se il valore di è Compress e il flusso sottostante non è chiuso e supporta la scrittura; in caso contrario, false. + + + Rilascia le risorse non gestite usate da e, facoltativamente, le risorse gestite. + true per rilasciare sia le risorse gestite sia quelle non gestite; false per rilasciare solo le risorse non gestite. + + + L'implementazione corrente di questo metodo non presenta alcuna funzionalità. + Il flusso è chiuso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Legge un numero di byte decompressi nella matrice di byte specificata. + Numero di byte letti nella matrice di byte. + Matrice per archiviare i byte decompressi. + Offset dei byte in in corrispondenza del quale cui verranno inseriti i byte letti. + Numero massimo di byte decompressi da leggere. + + è null. + Al momento della creazione dell'oggetto, il valore di era Compress.-oppure- Il flusso sottostante non supporta la lettura. + + o è minore di zero.-oppure-La lunghezza di meno il punto iniziale dell'indice è minore di . + Il formato dei dati non è valido. + Il flusso è chiuso. + + + Questa operazione non è supportata e genera sempre un'eccezione . + Valore long. + Posizione all'interno del flusso. + Uno dei valori di . + Questa proprietà non è supportata su questo flusso. + + + Questa operazione non è supportata e genera sempre un'eccezione . + Lunghezza del flusso. + Questa proprietà non è supportata su questo flusso. + + + Scrive i byte compressi nel flusso sottostante dalla matrice di byte specificata. + Buffer contenente i dati da comprimere. + Offset dei byte in da cui verranno letti i byte. + Numero massimo di byte da scrivere. + + + Fornisce i metodi e le proprietà usate per comprimere e decomprimere i flussi. + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. + Flusso in cui scrivere i dati compressi. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. Facoltativamente mantiene aperto il flusso. + Flusso in cui scrivere i dati compressi. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + true per mantenere l'oggetto flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. + Flusso in cui vengono scritti i dati compressi e decompressi. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + + è null. + + non è un valore dell'enumerazione valido.-oppure- è e è false.-oppure- è e è false. + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. Facoltativamente mantiene aperto il flusso. + Flusso in cui vengono scritti i dati compressi e decompressi. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Ottiene un riferimento al flusso sottostante. + Oggetto flusso che rappresenta il flusso sottostante. + Il flusso sottostante è chiuso. + + + + + + Ottiene un valore che indica se il flusso supporta la lettura durante la decompressione di un file. + true se il valore di è Decompress, e il flusso sottostante non è chiuso e supporta la lettura; in caso contrario, false. + + + + + + Ottiene un valore che indica se il flusso supporta la ricerca. + false in tutti i casi. + + + Ottiene un valore che indica se il flusso supporta la scrittura. + true se il valore di è Compress e il flusso sottostante non è chiuso e supporta la scrittura; in caso contrario, false. + + + + + + Rilascia le risorse non gestite usate da e, facoltativamente, le risorse gestite. + true per rilasciare sia le risorse gestite sia quelle non gestite; false per rilasciare solo le risorse non gestite. + + + L'implementazione corrente di questo metodo non presenta alcuna funzionalità. + Il flusso è chiuso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Legge un numero di byte decompressi nella matrice di byte specificata. + Numero di byte decompressi nella matrice di byte.Se è stata raggiunta la fine del flusso, viene restituito zero o il numero di byte letto. + Matrice usata per archiviare i byte decompressi. + Offset dei byte in in corrispondenza del quale cui verranno inseriti i byte letti. + Numero massimo di byte decompressi da leggere. + + è null. + Al momento della creazione dell'oggetto, il valore di era Compress.-oppure-Il flusso sottostante non supporta la lettura. + + o è minore di zero.-oppure-La lunghezza di meno il punto iniziale dell'indice è minore di . + Il formato dei dati non è valido. + Il flusso è chiuso. + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Posizione all'interno del flusso. + Uno dei valori di . + Questa proprietà non è supportata su questo flusso. + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Lunghezza del flusso. + Questa proprietà non è supportata su questo flusso. + + + Scrive i byte compressi nel flusso sottostante dalla matrice di byte specificata. + Buffer contenente i dati da comprimere. + Offset dei byte in da cui verranno letti i byte. + Numero massimo di byte da scrivere. + Non è possibile eseguire l'operazione di scrittura perché il flusso è chiuso. + + + Rappresenta un pacchetto di file compressi nel formato di archiviazione ZIP. + + + Inizializza una nuova istanza della classe dal flusso specificato. + Flusso che contiene l'archivio da leggere. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Inizializza una nuova istanza della classe dal flusso specificato e con la modalità specificata. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inizializza una nuova istanza della classe sulla base del flusso specificato per la modalità specificata e, facoltativamente, mantiene aperto il flusso. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inizializza una nuova istanza della classe sulla base del flusso specificato per la modalità specificata. Usa la codifica specificata per i nomi delle voci e, facoltativamente, mantiene aperto il flusso. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + La codifica da usate durante la lettura o la scrittura dei nomi delle voci in questo archivio.Specificare un valore per il parametro solo quando una codifica è obbligatoria per l'interoperabilità con gli strumenti e le librerie dell'archivio ZIP che non supportano la codifica UTF-8 per i nomi di voce. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crea una voce vuota con il percorso e il nome della voce specificati nell'archivio ZIP. + Voce vuota nell'archivio ZIP. + Percorso, relativo alla radice dell'archivio, che specifica il nome della voce da creare. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crea una voce vuota con il livello di compressione e il nome voce specificati nell'archivio ZIP. + Voce vuota nell'archivio ZIP. + Percorso, relativo alla radice dell'archivio, che specifica il nome della voce da creare. + Uno dei valori di enumerazione che indica se privilegiare la velocità o l'efficacia di compressione quando si crea la voce. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Rilascia le risorse usate dall'istanza corrente della classe . + + + Viene chiamato dai metodi e per rilasciare le risorse non gestite usate dall'istanza corrente della classe e, facoltativamente, completa la scrittura dell'archivio e rilascia le risorse gestite. + true per completare la scrittura dell'archivio e rilasciare le risorse gestite e non gestite; false per rilasciare solo le risorse non gestite. + + + Ottiene la raccolta di voci attualmente presenti nell'archivio ZIP. + La raccolta di voci attualmente presenti nell'archivio ZIP. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Recupera un wrapper per la voce specificata nell'archivio ZIP. + Wrapper per la voce specificata nell'archivio; null se la voce non esiste nell'archivio. + Percorso, relativo alla radice dell'archivio, che identifica la voce da recuperare. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ottiene un valore che descrive il tipo di azione che l'archivio ZIP può eseguire sulle voci. + Uno dei valori di enumerazione che descrive il tipo di azione (leggere, creare o aggiornare) che l'archivio ZIP può eseguire sulle voci. + + + Rappresenta un file compresso in un archivio ZIP. + + + Ottiene l'archivio ZIP cui appartiene la voce. + Archivio ZIP cui appartiene la voce o null se la voce è stata eliminata. + + + Ottiene la dimensione compressa della voce nell'archivio ZIP. + La dimensione compressa della voce nell'archivio ZIP. + The value of the property is not available because the entry has been modified. + + + Elimina la voce dall'archivio ZIP. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Ottiene il percorso relativo della voce nell'archivio ZIP. + Percorso relativo della voce nell'archivio ZIP. + + + Ottiene o imposta l'ultima volta in cui la voce nell'archivio ZIP è stata modificata. + L'ultima volta in cui la voce nell'archivio ZIP è stata modificata. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Ottiene la dimensione non compressa della voce nell'archivio ZIP. + Dimensione non compressa della voce nell'archivio ZIP. + The value of the property is not available because the entry has been modified. + + + Ottiene il nome file della voce nell'archivio ZIP. + Nome file della voce nell'archivio ZIP. + + + Apre la voce dall'archivio ZIP. + Flusso che rappresenta il contenuto della voce. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Recupera il percorso relativo della voce nell'archivio ZIP. + Percorso relativo della voce, ovvero il valore archiviato nella proprietà . + + + Specifica i valori per l'interazione con le voci dell'archivio ZIP. + + + È consentita solo la creazione di nuove voci dell'archivio. + + + È consentita solo la lettura delle voci dell'archivio. + + + Sono consentite sia operazioni in lettura che in scrittura per le voci dell'archivio. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ja/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ja/System.IO.Compression.xml new file mode 100644 index 0000000..5a11299 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ja/System.IO.Compression.xml @@ -0,0 +1,446 @@ + + + + System.IO.Compression + + + + 圧縮操作で速度または圧縮サイズのどちらを重視するかどうかを示す値を指定します。 + + + 圧縮後のファイルは最適な圧縮ではなくても、圧縮操作はできるだけ迅速に完了する必要があります。 + + + ファイルに対して圧縮を行いません。 + + + 圧縮操作の操作が完了するまでに時間がかかりますが、圧縮操作は最適に圧縮する必要があります。 + + + 基になるストリームを圧縮するのか、または圧縮解除するのかを指定します。 + + + 基になるストリームを圧縮します。 + + + 基になるストリームを圧縮解除します。 + + + Deflate アルゴリズムを使用してストリームを圧縮および圧縮解除するためのメソッドとプロパティを提供します。 + + + 指定したストリームと圧縮レベルを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮するストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮レベルを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮するストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリーム オブジェクトを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮モードを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮または圧縮解除するストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 指定したストリームと圧縮モードを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮または圧縮解除するストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 基になるストリームへの参照を取得します。 + 基になるストリームを表すストリーム オブジェクト。 + 基になるストリームが閉じられました。 + + + ファイルの圧縮解除中にストリームが読み取りをサポートするかどうかを示す値を取得します。 + + 値が Decompress で、基になるストリームが開いており、読み取りをサポートしている場合は true。それ以外の場合は false。 + + + ストリームがシークをサポートしているかどうかを示す値を取得します。 + 常に false。 + + + ストリームが書き込みをサポートしているかどうかを示す値を取得します。 + + 値が Compress で、基になるストリームが書き込みをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + で使用されているアンマネージ リソースを解放し、オプションでマネージ リソースを解放します。 + マネージ リソースとアンマネージ リソースの両方を解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在実装されているこのメソッドは、何の機能も提供しません。 + ストリームが閉じられました。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + 圧縮解除されたバイト数を、指定したバイト配列に読み取ります。 + バイト配列に読み取られたバイト数。 + 圧縮解除されたバイトを格納するための配列。 + 読み取られるバイトが配置される 内のバイト オフセット。 + 読み取られる、圧縮解除されたバイトの最大数。 + + は null です。 + オブジェクトが作成されたとき、 値が Compress でした。または 基になるストリームが読み取りをサポートしていません。 + + または が 0 未満です。または の長さからインデックスの開始点を引いた値が 未満です。 + データ形式が無効です。 + ストリームが閉じられました。 + + + この操作はサポートされていないため、常に をスローします。 + long 値。 + ストリーム内の位置。 + + 値の 1 つ。 + このストリームでは、このプロパティはサポートされていません。 + + + この操作はサポートされていないため、常に をスローします。 + ストリーム長。 + このストリームでは、このプロパティはサポートされていません。 + + + 圧縮されたバイトを、指定したバイト配列から基になるストリームに書き込みます。 + 圧縮するデータを格納しているバッファー。 + バイトの読み取り元となる 内のバイト オフセット。 + 書き込む最大バイト数。 + + + ストリームの圧縮および圧縮解除を実行するために使用するメソッドとプロパティを提供します。 + + + 指定したストリームと圧縮レベルを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮されたデータを書き込むストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮レベルを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮されたデータを書き込むストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリーム オブジェクトを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮モードを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮されたデータまたは圧縮解除されたデータが書き込まれるストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + は null です。 + + が有効な 列挙値ではありません。または で、 が false です。または で、 が false です。 + + + 指定したストリームと圧縮モードを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮されたデータまたは圧縮解除されたデータが書き込まれるストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 基になるストリームへの参照を取得します。 + 基になるストリームを表すストリーム オブジェクト。 + 基になるストリームが閉じられました。 + + + + + + ファイルの圧縮解除中にストリームが読み取りをサポートするかどうかを示す値を取得します。 + + 値が Decompress, で、基になるストリームが読み取りをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + + + ストリームがシークをサポートしているかどうかを示す値を取得します。 + 常に false。 + + + ストリームが書き込みをサポートしているかどうかを示す値を取得します。 + + 値が Compress で、基になるストリームが書き込みをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + + + + で使用されているアンマネージ リソースを解放し、オプションでマネージ リソースを解放します。 + マネージ リソースとアンマネージ リソースの両方を解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在実装されているこのメソッドは、何の機能も提供しません。 + ストリームが閉じられました。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + 圧縮解除されたバイト数を、指定したバイト配列に読み取ります。 + 圧縮解除されバイト配列に読み取られたバイト数。既にストリームの末尾に到達している場合は、ゼロまたは読み取られたバイト数が返されます。 + 圧縮解除されたバイトを格納するために使用する配列。 + 読み取られるバイトが配置される 内のバイト オフセット。 + 読み取られる、圧縮解除されたバイトの最大数。 + + は null です。 + オブジェクトが作成されたとき、 値が Compress でした。または基になるストリームが読み取りをサポートしていません。 + + または が 0 未満です。または の長さからインデックスの開始点を引いた値が 未満です。 + データ形式が無効です。 + ストリームが閉じられました。 + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + ストリーム内の位置。 + + 値の 1 つ。 + このストリームでは、このプロパティはサポートされていません。 + + + このプロパティはサポートされていないため、常に をスローします。 + ストリーム長。 + このストリームでは、このプロパティはサポートされていません。 + + + 圧縮されたバイトを、指定したバイト配列から基になるストリームに書き込みます。 + 圧縮するデータを格納しているバッファー。 + バイトの読み取り元となる 内のバイト オフセット。 + 書き込む最大バイト数。 + ストリームが閉じているため、書き込み操作を実行できません。 + + + zip アーカイブ形式の圧縮ファイルのパッケージを表します。 + + + 指定したストリームからの クラスの新しいインスタンスを初期化します。 + 読み取るアーカイブを格納しているストリーム。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 指定したストリームと指定したモードから クラスの新しいインスタンスを初期化します。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定されたモードの指定されたストリームで クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定されたモードの指定されたストリームで クラスの新しいインスタンスを初期化し、エントリ名に指定されたエンコーディングを使用します。また、必要に応じて、ストリームを開いたままにします。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + このアーカイブのエントリ名の読み取りまたは書き込み時に使用するエンコード。エントリ名の UTF-8 エンコードをサポートしない zip アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定したパスとエントリ名を持つ空のエントリを zip アーカイブに作成します。 + zip アーカイブ内の空のエントリ。 + 作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 指定したエントリ名と圧縮レベルを持つ空のエントリを zip アーカイブに作成します。 + zip アーカイブ内の空のエントリ。 + 作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。 + エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + クラスの現在のインスタンスによって使用されているリソースを解放します。 + + + + クラスの現在のインスタンスによって使用されるアンマネージ リソースを解放するために、 メソッドと メソッドによって呼び出されます。オプションで、アーカイブの書き込みを終了し、マネージ リソースを解放できます。 + アーカイブの書き込みを終了し、アンマネージ リソースとマネージ リソースを解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在 zip アーカイブ内にあるエントリのコレクションを取得します。 + 現在 zip アーカイブ内にあるエントリのコレクション。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + zip アーカイブ内の指定したエントリのラッパーを取得します。 + アーカイブ内の指定されたエントリのラッパー。エントリがアーカイブに存在しない場合は null。 + 取得するエントリを識別する、アーカイブのルートを基準とするパス。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + zip アーカイブがエントリで実行できる操作の種類を示す値を取得します。 + zip のアーカイブがエントリ上で実行できる操作の種類 (読み込み、作成、または更新) を示す列挙値の 1 つ。 + + + zip アーカイブ内の圧縮ファイルを表します。 + + + エントリが属する zip アーカイブを取得します。 + エントリが属している zip アーカイブ、または、エントリが削除されている場合は null。 + + + zip アーカイブ内のエントリの圧縮サイズを取得します。 + zip アーカイブ内のエントリの圧縮サイズ。 + The value of the property is not available because the entry has been modified. + + + zip アーカイブからエントリを削除します。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + zip アーカイブ内のエントリの相対パスを取得します。 + zip アーカイブ内のエントリの相対パス。 + + + zip アーカイブのエントリが最後に変更されたときを取得または設定します。 + zip アーカイブ内のエントリが最後に変更された時間。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + zip アーカイブ内のエントリの非圧縮サイズを取得します。 + zip アーカイブ内のエントリの非圧縮サイズ。 + The value of the property is not available because the entry has been modified. + + + zip アーカイブ内のエントリのファイル名を取得します。 + zip アーカイブ内のエントリのファイル名。 + + + zip のアーカイブからエントリを開きます。 + エントリの内容を表すストリーム。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + zip アーカイブ内のエントリの相対パスを取得します。 + エントリの相対パス。これは プロパティに格納されている値です。 + + + zip のアーカイブ エントリとの対話のための値を指定します。 + + + 新しいアーカイブ エントリの作成に限り許可されます。 + + + 新しいアーカイブ エントリの読み込みに限り許可されます。 + + + 読み取りと書き込みの両方の操作がアーカイブ エントリで許可されます。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ko/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ko/System.IO.Compression.xml new file mode 100644 index 0000000..7026417 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ko/System.IO.Compression.xml @@ -0,0 +1,446 @@ + + + + System.IO.Compression + + + + 압축 시 속도를 우선할지 압축 크기를 우선할지를 나타내는 값을 지정합니다. + + + 압축 작업은 결과 파일이 최적으로 압축되지 않더라도 가능한 신속하게 완료되어야 합니다. + + + 파일에 대해 압축을 수행할 수 없습니다. + + + 작업을 완료하는 데 시간이 더 걸리더라도 압축 작업은 최적으로 압축되어야 합니다. + + + 내부 스트림을 압축할지 또는 압축을 풀지 여부를 지정합니다. + + + 내부 스트림을 압축합니다. + + + 내부 스트림의 압축을 풉니다. + + + Deflate 알고리즘을 사용하여 스트림을 압축하고 압축을 풀기 위한 메서드와 속성을 제공합니다. + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축할 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축할 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림 개체를 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축하거나 압축을 풀 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축하거나 압축을 풀 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 내부 스트림에 대한 참조를 가져옵니다. + 내부 스트림을 나타내는 스트림 개체입니다. + 내부 스트림이 닫혀 있는 경우 + + + 파일의 압축을 푸는 동안 스트림을 읽을 수 있는지 여부를 나타내는 값을 가져옵니다. + + 값이 Decompress이고 내부 스트림이 열려 있으며 읽기를 지원하면 true이고, 이외의 경우는 false입니다. + + + 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다. + 모든 경우에 false입니다. + + + 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다. + + 값이 Compress이고 내부 스트림이 쓰기를 지원하며 닫혀 있지 않으면 true이고, 이외의 경우는 false입니다. + + + + 가 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제합니다. + 관리되는 리소스와 관리되지 않는 리소스를 모두 해제하려면 true로 설정하고, 관리되지 않는 리소스만 해제하려면 false로 설정합니다. + + + 이 메서드의 현재 클래스에는 기능이 없습니다. + 스트림이 닫혀 있는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 압축이 풀린 바이트 수를 지정된 바이트 배열로 읽어 들입니다. + 바이트 배열에 읽어 들인 바이트 수입니다. + 압축이 풀린 바이트를 저장할 배열입니다. + 읽은 바이트를 넣을 의 바이트 오프셋입니다. + 읽을 최대 압축 풀린 바이트 수입니다. + + 가 null인 경우 + 개체를 만들 때 값이 Compress였던 경우또는 내부 스트림이 읽기를 지원하지 않는 경우 + + 또는 가 0보다 작은 경우또는 길이에서 인덱스 시작 위치를 뺀 값이 보다 작은 경우 + 데이터의 형식이 잘못된 경우 + 스트림이 닫혀 있는 경우 + + + 이 작업은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 스트림 내의 위치입니다. + + 값 중 하나입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 이 작업은 지원되지 않으며 항상 을 throw합니다. + 스트림의 길이입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 지정된 바이트 배열에서 압축된 바이트를 내부 스트림에 씁니다. + 압축할 데이터가 들어 있는 버퍼입니다. + 바이트를 읽어올 의 바이트 오프셋입니다. + 쓸 최대 바이트 수입니다. + + + 스트림을 압축하거나 압축을 푸는 데 사용되는 메서드 및 속성을 제공합니다. + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축된 데이터를 쓸 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축된 데이터를 쓸 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림 개체를 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축되거나 압축을 푼 데이터가를 쓸 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + + 가 유효한 열거형 값이 아닌 경우또는이고 가 false인 경우또는이고 가 false인 경우 + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축되거나 압축을 푼 데이터가를 쓸 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 내부 스트림에 대한 참조를 가져옵니다. + 내부 스트림을 나타내는 스트림 개체입니다. + 내부 스트림이 닫혀 있는 경우 + + + + + + 파일의 압축을 푸는 동안 스트림을 읽을 수 있는지 여부를 나타내는 값을 가져옵니다. + + 값이 Decompress,이고 내부 스트림이 읽기를 지원하며 닫혀 있지 않으면 true이고, 그렇지 않으면 false입니다. + + + + + + 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다. + 모든 경우에 false입니다. + + + 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다. + + 값이 Compress이고 내부 스트림이 쓰기를 지원하며 닫혀 있지 않으면 true이고, 이외의 경우는 false입니다. + + + + + + + 에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. + 관리되는 리소스와 관리되지 않는 리소스를 모두 해제하려면 true로 설정하고, 관리되지 않는 리소스만 해제하려면 false로 설정합니다. + + + 이 메서드의 현재 클래스에는 기능이 없습니다. + 스트림이 닫혀 있는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 압축이 풀린 바이트 수를 지정된 바이트 배열로 읽어 들입니다. + 바이트 배열에 압축이 풀린 바이트 수입니다.스트림의 끝에 도달한 경우에는 0 또는 읽은 바이트 수가 반환됩니다. + 압축이 풀린 바이트를 저장하는 데 사용되는 배열입니다. + 읽은 바이트를 넣을 의 바이트 오프셋입니다. + 읽을 최대 압축 풀린 바이트 수입니다. + + 가 null인 경우 + 개체를 만들 때 값이 Compress였던 경우또는내부 스트림이 읽기를 지원하지 않는 경우 + + 또는 가 0보다 작은 경우또는 길이에서 인덱스 시작 위치를 뺀 값이 보다 작은 경우 + 데이터의 형식이 잘못된 경우 + 스트림이 닫혀 있는 경우 + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 스트림 내의 위치입니다. + + 값 중 하나입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + 스트림의 길이입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 지정된 바이트 배열에서 압축된 바이트를 내부 스트림에 씁니다. + 압축할 데이터가 들어 있는 버퍼입니다. + 바이트를 읽어올 의 바이트 오프셋입니다. + 쓸 최대 바이트 수입니다. + 스트림이 닫혀 있어서 쓰기 작업을 수행할 수 없는 경우 + + + Zip 보관 파일 형식으로 압축된 파일 패키지를 나타냅니다. + + + 지정된 스트림에서 클래스의 새 인스턴스를 초기화합니다. + 읽을 보관 저장소가 포함된 스트림입니다. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 지정된 모드를 사용하여 지정된 스트림에서 클래스의 새 인스턴스를 초기화합니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 지정된 모드에 대해 지정된 스트림에서 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둡니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 지정된 모드에 대해 지정된 스트림에서 클래스의 새 인스턴스를 초기화하고 항목 이름에 대해 지정된 인코딩을 사용하며 스트림을 선택적으로 연 상태로 둡니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + 이 보관 파일에서 이름을 읽거나 쓰는 동안 사용할 인코딩입니다.인코딩이 항목 이름에 대해 UTF-8 인코딩을 지원하지 않는 Zip 보관 도구와 라이브러리를 사용하여 상호 운용성에 인코딩이 필요할 때만 이 매개 변수에 대한 값을 지정합니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Zip 보관 파일에 지정된 경로 및 항목 이름을 가진 빈 항목을 만듭니다. + Zip 보관 파일의 빈 항목입니다. + 만들 항목의 이름을 지정하는, 보관 저장소의 루트에 상대적인 경로입니다. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Zip 보관 파일에 지정된 항목 이름 및 압축 수준을 가진 빈 항목을 만듭니다. + Zip 보관 파일의 빈 항목입니다. + 만들 항목의 이름을 지정하는, 보관 저장소의 루트에 상대적인 경로입니다. + 항목을 만들 때 속도 또는 압축 효율을 강조할지를 나타내는 열거형 값 중 하나입니다. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + 클래스의 현재 인스턴스에서 사용하는 리소스를 해제합니다. + + + + 클래스의 현재 인스턴스가 사용하는 관리되지 않는 리소스를 해제하기 위해 메서드에 의해 호출되며 선택적으로 보관 파일을 작성하고 관리되는 리소스를 해제합니다. + 보관 파일에 쓰기를 완료하고 관리되지 않은 리소스와 관리되는 리소스를 해제하려면 true이고, 관리되지 않은 리소스만 해제하려면 false입니다. + + + 현재 Zip 보관 파일에 있는 항목의 컬렉션을 가져옵니다. + 현재 Zip 보관 파일에 있는 항목의 컬렉션입니다. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Zip 보관 파일 항목에 대한 래퍼를 검색합니다. + 보관 저장소의 지정된 항목에 대한 래퍼이거나, 항목이 보관 저장소에 없는 경우 null입니다. + 검색할 항목을 식별하는, 보관 저장소의 루트에 상대적인 경로입니다. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Zip 보관 파일이 엔트리에 대해 수행할 수 있는 동작의 유형을 나타내는 값을 가져옵니다. + 엔트리에 Zip 보관 파일을 보관할 수 있는 동작(읽기, 만들기 또는 업데이트) 유형을 설명하는 열거형 값 중 하나입니다. + + + Zip 보관 파일 내의 압축된 파일을 나타냅니다. + + + 엔트리가 속한 Zip 보관 파일을 가져옵니다. + 항목이 속하는 Zip 보관 파일이거나, 항목이 삭제된 경우 null입니다. + + + Zip 보관 파일에 있는 항목의 압축된 크기를 가져옵니다. + Zip 보관 파일에 있는 항목의 압축된 크기입니다. + The value of the property is not available because the entry has been modified. + + + Zip 보관 파일에서 항목을 삭제합니다. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Zip 보관 파일에 있는 항목의 상대 경로를 가져옵니다. + Zip 보관 파일에 있는 항목의 상대 경로입니다. + + + Zip 보관 파일의 항목이 마지막으로 변경된 시간을 가져오거나 설정합니다. + Zip 보관 파일의 항목이 마지막으로 변경된 시간입니다. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Zip 보관 파일에 있는 항목의 압축되지 않은 크기를 가져옵니다. + Zip 보관 파일에 있는 항목의 압축 해제된 크기입니다. + The value of the property is not available because the entry has been modified. + + + Zip 보관 파일에 있는 항목의 파일 이름을 가져옵니다. + Zip 보관 파일에 있는 항목의 파일 이름입니다. + + + Zip 보관 파일에서 항목을 엽니다. + 항목의 내용을 나타내는 스트림입니다. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Zip 보관 파일에 있는 항목의 상대 경로를 검색합니다. + 항목의 상대 경로로, 속성에 저장된 값입니다. + + + Zip 보관 파일 항목과 상호 작용하기 위한 값을 지정합니다. + + + 새 보관 항목 만들기만 허용됩니다. + + + 보관 항목 읽기만 허용됩니다. + + + 보관 항목에 대해 읽기 및 쓰기 작업 모두가 허용됩니다. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ru/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ru/System.IO.Compression.xml new file mode 100644 index 0000000..39281ce --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/ru/System.IO.Compression.xml @@ -0,0 +1,415 @@ + + + + System.IO.Compression + + + + Определяет значения, указывающие, для какой характеристики оптимизируется сжатие: скорость или размер. + + + Операция сжатия должна завершиться как можно быстрее, даже если результирующий файл не будет сжат оптимально. + + + Файл не требуется сжимать. + + + При операции сжатия должно применяться оптимальное сжатие, даже если это увеличивает длительность ее выполнения. + + + Задает, следует ли сжимать или распаковывать основной поток. + + + Сжимает основной поток. + + + Распаковывает основной поток. + + + Предоставляет методы и свойства для сжатия и распаковки потоков с использованием алгоритма Deflate. + + + Инициализирует новый экземпляр класса с использованием указанного потока и уровня сжатия. + Поток для сжатия. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с помощью указанного потока и уровня сжатия, а также при необходимости оставляет поток открытым. + Поток для сжатия. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Значение true, чтобы оставить объект потока открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с использованием указанного потока и режима сжатия. + Поток, который нужно сжать или распаковать. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Инициализирует новый экземпляр класса с помощью указанного потока и режима сжатия, а также при необходимости оставляет поток открытым. + Поток, который нужно сжать или распаковать. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Возвращает ссылку на основной поток. + Объект потока, представляющий основной поток. + Основной поток закрыт. + + + Возвращает значение, указывающее, поддерживает ли поток чтение во время распаковки файла. + Значение true, если значение равно Decompress, а основной поток открыт и поддерживает чтение; в противном случае — false. + + + Возвращает значение, указывающее, поддерживает ли поток поиск. + Значение false во всех случаях. + + + Возвращает значение, определяющее, поддерживает ли поток операции записи. + Значение true, если значение равно Compress, и основной поток поддерживает запись и не закрыт; в противном случае — false. + + + Освобождает неуправляемые ресурсы, используемые объектом , а при необходимости освобождает также управляемые ресурсы. + Значение true позволяет освободить как управляемые, так и неуправляемые ресурсы; значение false освобождает только неуправляемые ресурсы. + + + Текущая реализация этого метода не функциональна. + Поток закрыт. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Считывает число распакованных байтов в указанный массив байтов. + Число байтов, которые были считаны в массив байтов. + Массив для хранения распакованных байтов. + Смещение в байтах в массиве , в который будут помещены считанные байты. + Максимальное число распакованных байтов для считывания. + Свойство имеет значение null. + При создании объекта значение было равно Compress.-или- Основной поток не поддерживает чтение. + Значение параметра или меньше нуля.-или-Длина массива минус начальная точка индекса меньше чем . + Недопустимый формат данных. + Поток закрыт. + + + Эта операция не поддерживается и всегда вызывает исключение . + Значение типа long. + Расположение в потоке. + Одно из значений . + Для данного потока это свойство не поддерживается. + + + Эта операция не поддерживается и всегда вызывает исключение . + Длина потока. + Для данного потока это свойство не поддерживается. + + + Записывает сжатые байты в основной поток из указанного массива байтов. + Буфер, содержащий данные для сжатия. + Смещение байтов в , из которого будут считываться байты. + Максимальное число байтов для записи. + + + Предоставляет методы и свойства, используемые для сжатия и распаковки потоков. + + + Инициализирует новый экземпляр класса с использованием указанного потока и уровня сжатия. + Поток, в который необходимо записать сжатые данные. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с помощью указанного потока и уровня сжатия, а также при необходимости оставляет поток открытым. + Поток, в который необходимо записать сжатые данные. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Значение true, чтобы оставить объект потока открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с использованием указанного потока и режима сжатия. + Поток, в который записываются сжатые или распакованные данные. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Свойство имеет значение null. + + не является допустимым значением перечисления .-или- и — false.-или- и — false. + + + Инициализирует новый экземпляр класса с помощью указанного потока и режима сжатия, а также при необходимости оставляет поток открытым. + Поток, в который записываются сжатые или распакованные данные. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Возвращает ссылку на основной поток. + Объект потока, представляющий основной поток. + Основной поток закрыт. + + + + + + Возвращает значение, указывающее, поддерживает ли поток чтение во время распаковки файла. + Значение true, если значение равно Decompress,, и основной поток поддерживает чтение и не закрыт; в противном случае — false. + + + + + + Возвращает значение, указывающее, поддерживает ли поток поиск. + Значение false во всех случаях. + + + Возвращает значение, определяющее, поддерживает ли поток операции записи. + Значение true, если значение равно Compress, и основной поток поддерживает запись и не закрыт; в противном случае — false. + + + + + + Освобождает неуправляемые ресурсы, используемые объектом , а при необходимости освобождает также и управляемые ресурсы. + Значение true позволяет освободить как управляемые, так и неуправляемые ресурсы; значение false освобождает только неуправляемые ресурсы. + + + Текущая реализация этого метода не функциональна. + Поток закрыт. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Считывает число распакованных байтов в указанный массив байтов. + Число байтов, которые были распакованы в массив байтов.Если достигнут конец потока, возвращаемое значение представляет собой число считанных байтов или же равно нулю. + Массив, используемый для хранения распакованных байтов. + Смещение в байтах в массиве , в который будут помещены считанные байты. + Максимальное число распакованных байтов для считывания. + Свойство имеет значение null. + При создании объекта значение было равно Compress.-или-Основной поток не поддерживает чтение. + Значение параметра или меньше нуля.-или-Длина массива минус начальная точка индекса меньше чем . + Недопустимый формат данных. + Поток закрыт. + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Расположение в потоке. + Одно из значений . + Для данного потока это свойство не поддерживается. + + + Это свойство не поддерживается и всегда вызывает исключение . + Длина потока. + Для данного потока это свойство не поддерживается. + + + Записывает сжатые байты в основной поток из указанного массива байтов. + Буфер, содержащий данные для сжатия. + Смещение байтов в , из которого будут считываться байты. + Максимальное число байтов для записи. + Операция записи не может быть выполнена, поскольку поток закрыт. + + + Представляет пакет сжатых файлов в формате ZIP архива. + + + Инициализирует новый экземпляр класса из заданного потока. + Поток, содержащий архив для чтения. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Инициализирует новый экземпляр класса из указанного потока с заданным режимом. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Инициализирует новый экземпляр класса на указанном потоке для заданного режима, а также при необходимости оставляет поток открытым. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Инициализирует новый экземпляр класса на указанном потоке для заданного режима, использует указанную кодировку для кодировку для имен записей, а также, при необходимости, оставляет поток открытым. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Кодирование, используемое при чтении или записи имен записей в этом архиве.Задайте значение для этого параметра, только если кодирование требуется для взаимодействия с инструментами и библиотеками ZIP-архива, которые не поддерживают кодирование UTF-8 для имен записей. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Создает пустую запись, которая имеет указанные путь и имя записи в ZIP архиве. + Пустая запись в ZIP-архиве. + Путь относительно корня архива, который указывает имя создаваемой записи. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Создает пустую запись, которая имеет указанные имя и уровень сжатия ZIP записи в архиве. + Пустая запись в ZIP-архиве. + Путь относительно корня архива, который указывает имя создаваемой записи. + Одно из значений перечисления, указывающее, акцентировать ли внимание на скорости или эффективности сжатия при создании записи. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Освобождает ресурсы, используемые текущим экземпляром класса . + + + Вызывается методами и , чтобы освободить неуправляемые ресурсы, используемые текущим экземпляром класса . Дополнительно может заканчивать запись архива и высвобождать управляемые ресурсы. + Значение true — для завершения записи архива и освобождения управляемых и неуправляемых ресурсов; значение false — для освобождения только неуправляемых ресурсов. + + + Получает коллекцию записей, которые находятся в ZIP-архиве в текущий момент. + Коллекция записей, которые находятся в ZIP-архиве в текущий момент. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Извлекает оболочку для заданной записи в ZIP-архиве. + Программа-оболочка для определенной записи в архиве; null — если запись не существует в архиве. + Путь относительно корня архива, который указывает запись для получения. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Получает значение, которое описывает тип действий, которые ZIP-архив может выполнять над записями. + Одно из значений перечисления, описывающее тип действия (чтение, создание или обновление), которое ZIP-архив может выполнять над записями. + + + Представляет сжатый файл внутри ZIP-архива. + + + Получает ZIP-архив, к которому принадлежит запись. + ZIP-архив, которому принадлежит запись, или значение null, если запись была удалена. + + + Получает сжатый размер записи в ZIP-архиве. + Сжатый размер записи в ZIP-архиве. + The value of the property is not available because the entry has been modified. + + + Удаляет запись из ZIP-архива. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Получает относительный путь записи в ZIP-архиве. + Относительный путь записи в ZIP-архиве. + + + Получает или задает время последнего изменения записи в ZIP-архиве. + Время последнего изменения записи в ZIP-архиве. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Получает несжатый размер записи в ZIP-архиве. + Несжатый размер записи в ZIP-архиве. + The value of the property is not available because the entry has been modified. + + + Получает имя файла записи в ZIP-архиве. + Имя файла записи в ZIP-архиве. + + + Открывает запись из ZIP-архива. + Поток, представляющий содержимое записи. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Извлекает относительный путь записи в ZIP-архиве. + Относительный путь записи, который является значением, хранящимся в свойстве . + + + Определяет значения для взаимодействия с записями ZIP-архива. + + + Разрешено только создание новых записей архива. + + + Разрешено только чтение записей архива. + + + Операции чтение и запись разрешены для записей архива. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hans/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hans/System.IO.Compression.xml new file mode 100644 index 0000000..244bf38 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hans/System.IO.Compression.xml @@ -0,0 +1,436 @@ + + + + System.IO.Compression + + + + 指定表明是否压缩操作重点介绍速度或压缩大小的值。 + + + 即使结果文件未可选择性地压缩,压缩操作也应尽快完成。 + + + 该文件不应执行压缩。 + + + 即使操作要用更长的时间来完成,也应该可选性地压缩压缩操作。 + + + 指定是否压缩或解压缩基础流。 + + + 压缩基础流。 + + + 解压缩基础流。 + + + 提供使用 Deflate 算法压缩和解压缩流的方法和属性。 + + + 用指定的流和压缩级别初始化 类的新实例。 + 要压缩的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 使用指定的流和压缩级别,初始化 类的新实例,有选择性的打开流。 + 要压缩的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 用指定的流和压缩模式初始化 类的新实例。 + 要压缩或解压缩的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 使用指定的流和压缩模式,初始化 类的新实例,有选择性的打开流。 + 要压缩或解压缩的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + 如果在释放 对象之后打开流,则为 true;否则为 false。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 获取对基础流的引用。 + 表示基础流的流对象。 + 基础流已关闭。 + + + 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 + 如果 值为 Decompress 而且基础流已打开并支持读取,则为 true;否则为 false。 + + + 获取一个值,该值指示流是否支持查找。 + 在所有情况下均为 false。 + + + 获取一个值,该值指示流是否支持写入。 + 如果 值为 Compress 而且基础流未关闭并支持写入,则为 true;否则为 false。 + + + 释放由 占用的非托管资源,还可以释放托管资源。 + 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。 + + + 此方法的当前实现没有任何功能。 + 流已关闭。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 将若干解压缩的字节读入指定的字节数组。 + 已读入到字节数组中的字节数。 + 用于存储解压缩的字节的数组。 + + 中的字节偏移量,将在此处放置读取的字节。 + 最多要读取的解压缩字节数。 + + 为 null。 + 创建对象时 值是 Compress。- 或 - 基础流不支持读取。 + + 小于零。- 或 - 长度减去索引起始点小于 + 数据的格式无效。 + 流已关闭。 + + + 此操作不受支持,它总是引发 + 一个长值。 + 流中的位置。 + + 值之一。 + 此流中不支持此属性。 + + + 此操作不受支持,它总是引发 + 流的长度。 + 此流中不支持此属性。 + + + 从指定的字节数组中将压缩的字节写入基础流。 + 包含要压缩的数据的缓冲区。 + + 中的字节偏移量,将在此处读取字节。 + 最多写入的字节数。 + + + 提供用于压缩和解压缩流的方法和属性。 + + + 用指定的流和压缩级别初始化 类的新实例。 + 要将压缩数据写入到其中的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 使用指定的流和压缩级别,初始化 类的新实例,有选择性的打开流。 + 要将压缩数据写入到其中的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 用指定的流和压缩模式初始化 类的新实例。 + 压缩或解压缩后的数据被写入的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + + 为 null。 + + 不是有效的 枚举值。- 或 - 为 false。- 或 - 为 false。 + + + 使用指定的流和压缩模式,初始化 类的新实例,有选择性的打开流。 + 压缩或解压缩后的数据被写入的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + 如果在释放 对象之后打开流,则为 true;否则为 false。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 获取对基础流的引用。 + 表示基础流的流对象。 + 基础流已关闭。 + + + + + + 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 + 如果 值为 Decompress, 而且基础流未关闭并支持读取,则为 true;否则为 false。 + + + + + + 获取一个值,该值指示流是否支持查找。 + 在所有情况下均为 false。 + + + 获取一个值,该值指示流是否支持写入。 + 如果 值为 Compress 而且基础流未关闭并支持写入,则为 true;否则为 false。 + + + + + + 释放由 占用的非托管资源,还可以释放托管资源。 + 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。 + + + 此方法的当前实现没有任何功能。 + 流已关闭。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 将若干解压缩的字节读入指定的字节数组。 + 解压缩到字节数组中的字节数。如果已到达流的末尾,则返回 0 或已读取的字节数。 + 用于存储解压缩字节的数组。 + + 中的字节偏移量,将在此处放置读取的字节。 + 最多要读取的解压缩字节数。 + + 为 null。 + 创建对象时 值是 Compress。- 或 -基础流不支持读取。 + + 小于零。- 或 - 长度减去索引起始点小于 + 数据的格式无效。 + 流已关闭。 + + + 此属性不受支持,并且总是引发 + 一个长值。 + 流中的位置。 + + 值之一。 + 此流中不支持此属性。 + + + 此属性不受支持,并且总是引发 + 流的长度。 + 此流中不支持此属性。 + + + 从指定的字节数组中将压缩的字节写入基础流。 + 包含要压缩的数据的缓冲区。 + + 中的字节偏移量,将在此处读取字节。 + 最多写入的字节数。 + 由于流已关闭,因此无法执行写入操作。 + + + 表示 Zip 存档格式中的一个压缩文件包。 + + + 从指定流初始化 类的新实例。 + 即包含待读取的存档的流。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 在指定的模式下,从指定的流初始化 类的新实例。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 对于指定的模式,初始化指定流上的 类的新实例,并有选择性地使流保持打开状态。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 对于指定的模式,初始化指定流上的 类的新实例,使用项名的指定编码,并有择性地使流保持打开状态。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + 在存档中读取或写入项名时使用的编码。仅当需要针对具有不支持项名的 UTF-8 编码的 zip 归档工具和库的互操作性进行编码时,为此参数指定一个值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 创建在 zip 存档中有指定路径和项名的空项。 + 在 zip 存档中的空项。 + 相对于存档的根的路径指定了要创建项的名称。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 创建在 zip 存档中有指定项名和压缩级别的空项。 + 在 zip 存档中的空项。 + 相对于存档的根的路径指定了要创建项的名称。 + 指示创建项时是否强调速度或压缩有效性的枚举值之一。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 释放 类的当前实例使用的资源。 + + + 方法调用,以释放 类的当前实例使用的未托管资源,并有选择性地完成编写存档以及释放托管资源。 + true 则完成编写存档并释放未托管和托管资源;false 则仅释放未托管资源。 + + + 获取 zip 存档中当前存在的项的集合。 + 在 zip 存档中当前存在的项的集合。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 在 zip 存档中检索指定项的包装。 + 存档中指定项的包装器;如果存档中不存在此项目则为 null。 + 识别要检索的项、相对于存档的根的路径。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 获取描述 zip 存档可在项上执行的操作类型的一个值。 + 描述 zip 存档可在项上执行的操作类型(读取、创建或更新)的一个枚举值。 + + + 表示 zip 档案中的压缩文件。 + + + 获取该项所属的 zip 存档。 + 项所属的 zip 存档,或如果已删除项,则为 null。 + + + 获取在 zip 存档中的项的压缩大小。 + 在 zip 存档中的项的压缩大小。 + The value of the property is not available because the entry has been modified. + + + 删除 zip 存档中的项。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + 获取 zip 存档中的项的相对路径。 + 在 zip 存档中的项的相对路径。 + + + 获取或设置最近一次更改 zip 存档中的项的时间。 + 最近一次更改 zip 存档中的项的时间。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + 获取 zip 存档中的项的未压缩大小。 + 在 zip 存档中的项的未压缩大小。 + The value of the property is not available because the entry has been modified. + + + 获取在 zip 存档中的项的文件名。 + 在 zip 存档中的项的文件名。 + + + 打开 zip 存档中的项。 + 表示项的内容的流。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + 检索 zip 存档中项的相对路径。 + 项的相对路径,即存储在 属性中的值。 + + + 指定与 zip 存档项互交的值。 + + + 只允许创建新存档项。 + + + 只允许读取存档项。 + + + 存档项允许读取和写入操作。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hant/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hant/System.IO.Compression.xml new file mode 100644 index 0000000..996a714 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.1/zh-hant/System.IO.Compression.xml @@ -0,0 +1,432 @@ + + + + System.IO.Compression + + + + 指定值,這個值表示壓縮作業會強調速度還是壓縮大小。 + + + 即使不能有效壓縮所產生的檔案,應該儘速完成壓縮作業。 + + + 不應該對檔案執行壓縮。 + + + 壓縮作業應該會進行最佳化壓縮,即使該作業耗費更長的時間才能完成。 + + + 指定是要壓縮還是要解壓縮基礎資料流。 + + + 壓縮基礎資料流。 + + + 解壓縮基礎資料流。 + + + 提供方法和屬性,以透過 Deflate 演算法來壓縮和解壓縮資料流。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體。 + 要壓縮的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要壓縮的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + true 表示在處置 物件之後,將資料流物件保持開啟;否則為 false。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體。 + 要壓縮或解壓縮的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要壓縮或解壓縮的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + true 表示在處置 物件之後,將資料流保持開啟;否則為 false。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 取得基礎資料流的參考。 + 資料流物件,表示基礎資料流。 + 已關閉基礎資料流。 + + + 取得值,指出在解壓縮檔案時,資料流是否支援讀取。 + 如果 值為 Decompress,且基礎資料流處於開啟狀態並支援讀取,則為 true;否則為 false。 + + + 取得值,指出資料流是否支援搜尋。 + 所有情況下都是 false。 + + + 取得值,指出資料流是否支援寫入。 + 如果 值為 Compress,並且基礎資料流支援寫入,且不處於關閉狀態,則為 true;否則為 false。 + + + 釋放 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 + true 表示釋放 Managed 和 Unmanaged 資源,false 則表示只釋放 Unmanaged 資源。 + + + 這個方法目前的實作沒有任何功能。 + 已關閉資料流。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 將大量解壓縮的位元組讀入指定的位元組陣列。 + 已讀入至位元組陣列的位元組數。 + 用於儲存解壓縮位元組的陣列。 + 要在其中放置讀取位元組之 的位元組位移。 + 要讀取的最大解壓縮位元組數。 + + 為 null。 + 建立物件時, 的值為 Compress。-或- 基礎資料流不支援讀取。 + + 小於零。-或- 長度減去索引起點小於 + 資料的格式無效。 + 已關閉資料流。 + + + 這個作業不受支援,而且一律會擲回 + 長整數值。 + 在資料流中的位置。 + 其中一個 值。 + 這個資料流不支援這個屬性。 + + + 這個作業不受支援,而且一律會擲回 + 資料流的長度。 + 這個資料流不支援這個屬性。 + + + 從指定的位元組陣列將壓縮的位元組寫入基礎資料流。 + 包含要壓縮之資料的緩衝區。 + + 中的位元組位移,即讀取位元組的來源位置。 + 寫入的最大位元組數。 + + + 提供用於壓縮和解壓縮資料流的方法和屬性。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體。 + 要寫入壓縮資料的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要寫入壓縮資料的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + true 表示在處置 物件之後,將資料流物件保持開啟;否則為 false。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體。 + 寫入壓縮或解壓縮資料的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + + 為 null。 + + 不是有效的 列舉值。-或-,而 是 false。-或-,而 是 false。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 寫入壓縮或解壓縮資料的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + true 表示在處置 物件之後,將資料流保持開啟;否則為 false。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 取得基礎資料流的參考。 + 資料流物件,表示基礎資料流。 + 已關閉基礎資料流。 + + + + + + 取得值,指出在解壓縮檔案時,資料流是否支援讀取。 + 如果 值為 Decompress,,並且基礎資料流支援讀取,且不處於關閉狀態,則為 true;否則為 false。 + + + + + + 取得值,指出資料流是否支援搜尋。 + 所有情況下都是 false。 + + + 取得值,指出資料流是否支援寫入。 + 如果 值為 Compress,並且基礎資料流支援寫入,且不處於關閉狀態,則為 true;否則為 false。 + + + + + + 釋放 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 + true 表示釋放 Managed 和 Unmanaged 資源,false 則表示只釋放 Unmanaged 資源。 + + + 這個方法目前的實作沒有任何功能。 + 已關閉資料流。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 將大量解壓縮的位元組讀入指定的位元組陣列。 + 解壓縮至位元組陣列的位元組數。如果已達到資料流的結尾,則會傳回零或位元組數。 + 用於儲存解壓縮位元組的陣列。 + 要在其中放置讀取位元組之 的位元組位移。 + 要讀取的最大解壓縮位元組數。 + + 為 null。 + 建立物件時, 的值為 Compress。-或-基礎資料流不支援讀取。 + + 小於零。-或- 長度減去索引起點小於 + 資料的格式無效。 + 已關閉資料流。 + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 在資料流中的位置。 + 其中一個 值。 + 這個資料流不支援這個屬性。 + + + 這個屬性不受支援,而且一律會擲回 + 資料流的長度。 + 這個資料流不支援這個屬性。 + + + 從指定的位元組陣列將壓縮的位元組寫入基礎資料流。 + 包含要壓縮之資料的緩衝區。 + + 中的位元組位移,即讀取位元組的來源位置。 + 寫入的最大位元組數。 + 無法執行寫入作業,因為資料流已關閉。 + + + 代表 zip 封存格式的壓縮檔封裝。 + + + 從指定的資料流,初始化 類別的新執行個體。 + 包含要讀取之封存的資料流。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 使用指定的模式,從指定的資料流初始化 類別的新執行個體。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在指定之模式的指定資料流上,初始化 類別的新執行個體,並選擇性地保留資料流開啟狀態。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + true 表示在處置 物件之後,將資料流保持開啟,否則為 false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在指定模式的指定資料流上,初始化 類別的新執行個體,使用項目名稱的指定編碼方式,並選擇性地保留資料流開啟狀態。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + true 表示在處置 物件之後,將資料流保持開啟,否則為 false。 + 在此封存中讀取或寫入項目名稱時要使用的編碼方式。只有需要編碼以與 Zip 封存工具和程式庫互通,且這類工具和程式庫不支援項目名稱使用 UTF-8 編碼時,才指定此參數的值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在 zip 封存中建立具有指定之路徑和項目名稱的空項目。 + Zip 封存中的空項目。 + 指定要建立之項目名稱的路徑 (相對於封存的根目錄)。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 在 zip 封存中建立具有指定之項目名稱和壓縮等級的空項目。 + Zip 封存中的空項目。 + 指定要建立之項目名稱的路徑 (相對於封存的根目錄)。 + 其中一個列舉值,指出建立項目時是否要強調速度或壓縮的效益。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 類別目前的執行個體所使用的資源釋出。 + + + 方法呼叫以釋放 類別之目前執行個體所使用的 Unmanaged 資源,並選擇性完成封存的寫入以及釋放 Managed 資源。 + true 表示完成寫入封存並釋放 Managed 和 Unmanaged 資源,false 表示只釋放 Unmanaged 資源。 + + + 取得目前 zip 封存中所包含項目的集合。 + 目前 zip 封存中所包含項目的集合。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 在 zip 封存中擷取指定項目的包裝函式。 + 封存中指定項目的包裝函式,如果項目不存在於封存中則為 null。 + 識別要擷取之項目的路徑 (相對於封存的根目錄)。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 取得值,描述 zip 封存可以在項目上執行的動作類型。 + 其中一個列舉值,其描述 zip 封存可以在項目上執行的動作類型 (讀取、建立或更新)。 + + + 表示 zip 封存中的壓縮檔。 + + + 取得項目所屬的 zip 封存。 + 項目所屬的 Zip 封存,如果已刪除項目,則為 null。 + + + 取得 Zip 封存中的項目壓縮大小。 + Zip 封存中項目的壓縮大小。 + The value of the property is not available because the entry has been modified. + + + 從 zip 封存中刪除項目。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + 取得 Zip 封存中的項目相對路徑。 + Zip 封存中的項目相對路徑。 + + + 取得或設定上次變更 zip 封存中之項目的時間。 + 上次變更 zip 封存中之項目的時間。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + 取得 Zip 封存中的項目未壓縮大小。 + Zip 封存中的項目未壓縮大小。 + The value of the property is not available because the entry has been modified. + + + 取得 Zip 封存中的項目檔名。 + Zip 封存中的項目檔名。 + + + 從 zip 封存中開啟項目。 + 代表此項目內容的資料流。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + 擷取 Zip 封存中項目的相對路徑。 + 項目的相對路徑,其為儲存在 屬性中的值。 + + + 指定與 zip 封存項目互動的值。 + + + 僅允許建立新的封存項目。 + + + 僅允許讀取封存項目。 + + + 封存項目允許讀取及寫入作業。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/System.IO.Compression.dll b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..6de132f297f72fad498bf5e0e0a16ecb07ae53c1 GIT binary patch literal 24280 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 Drw(WN literal 0 HcmV?d00001 diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/System.IO.Compression.xml new file mode 100644 index 0000000..a7c74c9 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Specifies values that indicate whether a compression operation emphasizes speed or compression size. + + + The compression operation should complete as quickly as possible, even if the resulting file is not optimally compressed. + + + No compression should be performed on the file. + + + The compression operation should be optimally compressed, even if the operation takes a longer time to complete. + + + Specifies whether to compress or decompress the underlying stream. + + + Compresses the underlying stream. + + + Decompresses the underlying stream. + + + Provides methods and properties for compressing and decompressing streams by using the Deflate algorithm. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to compress. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream to compress or decompress. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream is opened and supports reading; otherwise, false. + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were read into the byte array. + The array to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or - The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This operation is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This operation is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + + + Provides methods and properties used to compress and decompress streams. + + + Initializes a new instance of the class by using the specified stream and compression level. + The stream to write the compressed data to. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression level, and optionally leaves the stream open. + The stream to write the compressed data to. + One of the enumeration values that indicates whether to emphasize speed or compression efficiency when compressing the stream. + true to leave the stream object open after disposing the object; otherwise, false. + + is null. + The stream does not support write operations such as compression. (The property on the stream object is false.) + + + Initializes a new instance of the class by using the specified stream and compression mode. + The stream the compressed or decompressed data is written to. + One of the enumeration values that indicates whether to compress or decompress the stream. + + is null. + + is not a valid enumeration value.-or- is and is false.-or- is and is false. + + + Initializes a new instance of the class by using the specified stream and compression mode, and optionally leaves the stream open. + The stream the compressed or decompressed data is written to. + One of the enumeration values that indicates whether to compress or decompress the stream. + true to leave the stream open after disposing the object; otherwise, false. + + is null. + + is not a valid value.-or- is and is false.-or- is and is false. + + + Gets a reference to the underlying stream. + A stream object that represents the underlying stream. + The underlying stream is closed. + + + + + + Gets a value indicating whether the stream supports reading while decompressing a file. + true if the value is Decompress, and the underlying stream supports reading and is not closed; otherwise, false. + + + + + + Gets a value indicating whether the stream supports seeking. + false in all cases. + + + Gets a value indicating whether the stream supports writing. + true if the value is Compress, and the underlying stream supports writing and is not closed; otherwise, false. + + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + The current implementation of this method has no functionality. + The stream is closed. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + This property is not supported and always throws a . + A long value. + This property is not supported on this stream. + + + + + + Reads a number of decompressed bytes into the specified byte array. + The number of bytes that were decompressed into the byte array. If the end of the stream has been reached, zero or the number of bytes read is returned. + The array used to store decompressed bytes. + The byte offset in at which the read bytes will be placed. + The maximum number of decompressed bytes to read. + + is null. + The value was Compress when the object was created.- or -The underlying stream does not support reading. + + or is less than zero.-or- length minus the index starting point is less than . + The data is in an invalid format. + The stream is closed. + + + This property is not supported and always throws a . + A long value. + The location in the stream. + One of the values. + This property is not supported on this stream. + + + This property is not supported and always throws a . + The length of the stream. + This property is not supported on this stream. + + + Writes compressed bytes to the underlying stream from the specified byte array. + The buffer that contains the data to compress. + The byte offset in from which the bytes will be read. + The maximum number of bytes to write. + The write operation cannot be performed because the stream is closed. + + + Represents a package of compressed files in the zip archive format. + + + Initializes a new instance of the class from the specified stream. + The stream that contains the archive to be read. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initializes a new instance of the class from the specified stream and with the specified mode. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initializes a new instance of the class on the specified stream for the specified mode, and optionally leaves the stream open. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + true to leave the stream open after the object is disposed; otherwise, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initializes a new instance of the class on the specified stream for the specified mode, uses the specified encoding for entry names, and optionally leaves the stream open. + The input or output stream. + One of the enumeration values that indicates whether the zip archive is used to read, create, or update entries. + true to leave the stream open after the object is disposed; otherwise, false. + The encoding to use when reading or writing entry names in this archive. Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Creates an empty entry that has the specified path and entry name in the zip archive. + An empty entry in the zip archive. + A path, relative to the root of the archive, that specifies the name of the entry to be created. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Creates an empty entry that has the specified entry name and compression level in the zip archive. + An empty entry in the zip archive. + A path, relative to the root of the archive, that specifies the name of the entry to be created. + One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Releases the resources used by the current instance of the class. + + + Called by the and methods to release the unmanaged resources used by the current instance of the class, and optionally finishes writing the archive and releases the managed resources. + true to finish writing the archive and release unmanaged and managed resources; false to release only unmanaged resources. + + + Gets the collection of entries that are currently in the zip archive. + The collection of entries that are currently in the zip archive. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Retrieves a wrapper for the specified entry in the zip archive. + A wrapper for the specified entry in the archive; null if the entry does not exist in the archive. + A path, relative to the root of the archive, that identifies the entry to retrieve. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Gets a value that describes the type of action the zip archive can perform on entries. + One of the enumeration values that describes the type of action (read, create, or update) the zip archive can perform on entries. + + + Represents a compressed file within a zip archive. + + + Gets the zip archive that the entry belongs to. + The zip archive that the entry belongs to, or null if the entry has been deleted. + + + Gets the compressed size of the entry in the zip archive. + The compressed size of the entry in the zip archive. + The value of the property is not available because the entry has been modified. + + + Deletes the entry from the zip archive. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Gets the relative path of the entry in the zip archive. + The relative path of the entry in the zip archive. + + + Gets or sets the last time the entry in the zip archive was changed. + The last time the entry in the zip archive was changed. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Gets the uncompressed size of the entry in the zip archive. + The uncompressed size of the entry in the zip archive. + The value of the property is not available because the entry has been modified. + + + Gets the file name of the entry in the zip archive. + The file name of the entry in the zip archive. + + + Opens the entry from the zip archive. + The stream that represents the contents of the entry. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Retrieves the relative path of the entry in the zip archive. + The relative path of the entry, which is the value stored in the property. + + + Specifies values for interacting with zip archive entries. + + + Only creating new archive entries is permitted. + + + Only reading archive entries is permitted. + + + Both read and write operations are permitted for archive entries. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/de/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/de/System.IO.Compression.xml new file mode 100644 index 0000000..c665eda --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/de/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Gibt Werte an, die angeben, ob ein Komprimierungsvorgang die Geschwindigkeit oder den Komprimierungsumfang hervorhebt. + + + Der Komprimierungsvorgang soll so schnell wie möglich beendet werden, auch wenn die resultierende Datei nicht optimal komprimiert wird. + + + Bei der Datei sollte keine Komprimierung erfolgen. + + + Der Komprimierungsvorgang soll optimal ausgeführt werden, auch wenn der Vorgang eine längere Zeit in Anspruch nimmt. + + + Gibt an, ob der zugrunde liegende Stream komprimiert oder dekomprimiert werden soll. + + + Komprimiert den zugrunde liegenden Stream. + + + Dekomprimiert den zugrunde liegenden Stream. + + + Stellt Methoden und Eigenschaften zum Komprimieren und Dekomprimieren von Streams mithilfe des Deflate-Algorithmus bereit. + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsgrads. + Der zu komprimierende Stream. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und der Komprimierungsebene und lässt den Stream optional geöffnet. + Der zu komprimierende Stream. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + true, um das Streamobjekt offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsmodus. + Der zu komprimierende oder zu dekomprimierende Stream. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und des Komprimierungsmodus und lässt den Stream optional geöffnet. + Der zu komprimierende oder zu dekomprimierende Stream. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + true, um den Stream offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Ruft einen Verweis auf den zugrunde liegenden Stream ab. + Ein Streamobjekt, das den zugrunde liegenden Stream darstellt. + Der zugrunde liegende Stream ist geschlossen. + + + Ruft einen Wert ab, der angibt, ob der Stream Lesevorgänge unterstützt, während eine Datei dekomprimiert wird. + true, wenn der -Wert Decompress ist und der zugrunde liegende Stream geöffnet ist und Lesevorgänge unterstützt, andernfalls false. + + + Ruft einen Wert, der angibt, ob der Stream Suchvorgänge unterstützt. + false in allen Fällen. + + + Ruft einen Wert, der angibt, ob der Stream Schreibvorgänge unterstützt. + true, wenn der -Wert gleich Compress ist und der zugrunde liegende Stream Schreibvorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + Gibt die von verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. + true, um sowohl verwaltete als auch nicht verwaltete Ressourcen freizugeben, false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Die aktuelle Implementierung dieser Methode hat keine Funktion. + Der Stream ist geschlossen. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Liest eine Anzahl von dekomprimierten Bytes in das angegebene Bytearray. + Die Anzahl von Bytes, die in das Bytearray gelesen wurden. + Das Array zum Speichern von dekomprimierten Bytes. + Das Byteoffset in , an dem die gelesenen Bytes platziert werden. + Die maximale Anzahl der zu lesenden dekomprimierten Bytes. + + ist null. + Der -Wert war Compress, als das Objekt erstellt wurde.- oder - Der zugrunde liegende Stream unterstützt keine Lesevorgänge. + + oder ist kleiner als 0.- oder - Die -Länge minus des Indexausgangspunkts ist kleiner als . + Die Daten haben ein ungültiges Format. + Der Stream ist geschlossen. + + + Dieser Vorgang wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Die Position im Stream. + Einer der -Werte. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Dieser Vorgang wird nicht unterstützt und löst immer eine aus. + Die Länge des Streams. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Schreibt komprimierte Bytes aus dem angegebenen Bytearray in den zugrunde liegenden Stream. + Der Puffer, der die zu komprimierenden Daten enthält. + Das Byteoffset in , aus dem die Bytes gelesen werden. + Die maximale Anzahl der zu schreibenden Bytes. + + + Stellt Methoden und Eigenschaften bereit, die zum Komprimieren und Dekomprimieren von Streams verwendet werden. + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsgrads. + Der Stream, in den die komprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und der Komprimierungsebene und lässt den Stream optional geöffnet. + Der Stream, in den die komprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob die Geschwindigkeit oder Komprimierungsleistungsfähigkeit priorisiert wird, wenn der Stream komprimiert wird. + true, um das Streamobjekt offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + Der Stream unterstützt keine Schreibvorgänge wie die Komprimierung.(Die -Eigenschaft für das Streamobjekt ist false). + + + Initialisiert eine neue Instanz der -Klasse mithilfe des angegebenen Stream- und Komprimierungsmodus. + Der Stream, in den die komprimierten oder dekomprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + + ist null. + + ist kein gültiger -Enumerationswert.- oder - ist und ist false.- oder - ist und ist false. + + + Initialisiert eine neue Instanz der -Klasse unter Verwendung des angegebenen Streams und des Komprimierungsmodus und lässt den Stream optional geöffnet. + Der Stream, in den die komprimierten oder dekomprimierten Daten geschrieben werden. + Einer der Enumerationswerte, der angibt, ob der Stream gelesen oder geschrieben wird. + true, um den Stream offen zu lassen, nachdem das -Objekt freigegeben wurde, andernfalls false. + + ist null. + + ist kein gültiger -Wert.- oder - ist und ist false.- oder - ist und ist false. + + + Ruft einen Verweis auf den zugrunde liegenden Stream ab. + Ein Streamobjekt, das den zugrunde liegenden Stream darstellt. + Der zugrunde liegende Stream ist geschlossen. + + + + + + Ruft einen Wert ab, der angibt, ob der Stream Lesevorgänge unterstützt, während eine Datei dekomprimiert wird. + true, wenn der -Wert gleich Decompress, ist und der zugrunde liegende Stream Lesevorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + + + + Ruft einen Wert, der angibt, ob der Stream Suchvorgänge unterstützt. + false in allen Fällen. + + + Ruft einen Wert, der angibt, ob der Stream Schreibvorgänge unterstützt. + true, wenn der -Wert gleich Compress ist und der zugrunde liegende Stream Schreibvorgänge unterstützt und nicht geschlossen ist, andernfalls false. + + + + + + Gibt die von verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. + true, um sowohl verwaltete als auch nicht verwaltete Ressourcen freizugeben, false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Die aktuelle Implementierung dieser Methode hat keine Funktion. + Der Stream ist geschlossen. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + + + + Liest eine Anzahl von dekomprimierten Bytes in das angegebene Bytearray. + Die Anzahl der Bytes, die im Bytearray dekomprimiert wurden.Wenn das Ende des Streams erreicht worden ist, wird 0 oder die Anzahl der gelesenen Bytes zurückgegeben. + Das Array, das zum Speichern von dekomprimierten Bytes verwendet wird. + Das Byteoffset in , an dem die gelesenen Bytes platziert werden. + Die maximale Anzahl der zu lesenden dekomprimierten Bytes. + + ist null. + Der -Wert war Compress, als das Objekt erstellt wurde.- oder -Der zugrunde liegende Stream unterstützt keine Lesevorgänge. + + oder ist kleiner als 0.- oder - Die -Länge minus des Indexausgangspunkts ist kleiner als . + Die Daten haben ein ungültiges Format. + Der Stream ist geschlossen. + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Ein Long-Wert. + Die Position im Stream. + Einer der -Werte. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Diese Eigenschaft wird nicht unterstützt und löst immer eine aus. + Die Länge des Streams. + Diese Eigenschaft wird für diesen Stream nicht unterstützt. + + + Schreibt komprimierte Bytes aus dem angegebenen Bytearray in den zugrunde liegenden Stream. + Der Puffer, der die zu komprimierenden Daten enthält. + Das Byteoffset in , aus dem die Bytes gelesen werden. + Die maximale Anzahl der zu schreibenden Bytes. + Der Schreibvorgang kann nicht ausgeführt werden, da der Stream geschlossen ist. + + + Stellt ein Paket komprimierter Dateien im Zip-Archiv-Format dar. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream. + Ein Stream, der das zu lesende Archiv enthält. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initialisiert eine neue Instanz der -Klasse aus dem angegebenen Stream und mit dem angegebenen Modus. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream und den angegebenen Modus und lässt den Stream optional geöffnet. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + true, um den Datenstrom geöffnet zu lassen, nach dem das -Objekt freigegeben wurde; andernfalls false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialisiert eine neue Instanz der -Klasse für den angegebenen Stream und den angegebenen Modus und verwendet dabei die angegebene Codierung für Eintragsnamen und lässt den Stream optional geöffnet. + Der Eingabe- oder Ausgabestream. + Einer der Enumerationswerte, der angibt, ob das Zip-Archiv verwendet wird, um Einträge zu lesen, zu erstellen oder zu aktualisieren. + true, um den Datenstrom geöffnet zu lassen, nach dem das -Objekt freigegeben wurde; andernfalls false. + Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen in diesem Archiv verwendet werden soll.Geben Sie einen Wert für diesen Parameter nur an, wenn eine Codierung für die Interoperabilität mit ZIP-Archiv-Tools und -Bibliotheken erforderlich ist, die die UTF-8-Codierung für Eintragsnamen nicht unterstützen. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Erstellt einen leeren Eintrag, der den angegebenen Pfad und Eintragsnamen im ZIP-Archiv Ebene verwendet. + Ein leerer Eintrag im ZIP-Archiv. + Ein Pfad relativ zum Stamm des Archivs, der den Namen des Eintrags angibt, der erstellt werden soll. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Erstellt einen leeren Eintrag, der den angegebenen Eintragsnamen und die Komprimierung im ZIP-Archiv Ebene verwendet. + Ein leerer Eintrag im ZIP-Archiv. + Ein Pfad relativ zum Stamm des Archivs, der den Namen des Eintrags angibt, der erstellt werden soll. + Einer der Enumerationswerte, der angibt, ob Geschwindigkeit oder Komprimierungseffektivität priorisiert wird, wenn der Eintrag erstellt. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Gibt alle von der aktuellen Instanz der -Klasse verwendeten Ressourcen frei. + + + Wird von den und -Methoden aufgerufen, um die nicht verwalteten Ressourcen freizugeben, die von der aktuellen Instanz der -Klasse verwendet werden, und beendet optional das Schreiben ins Archiv und gibt die verwalteten Ressourcen frei. + true, um das Schreiben des Archivs abzuschließen und sowohl nicht verwaltete als auch verwaltete Ressourcen freizugeben; false, um ausschließlich nicht verwaltete Ressourcen freizugeben. + + + Ruft die Auflistung von Einträgen ab, die das ZIP-Archiv momentan enthält. + Die Auflistung von Einträgen, die das ZIP-Archiv momentan enthält. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ruft einen Wrapper für den angegebenen Eintrag im Zip-Archiv ab. + Ein Wrapper für den angegebenen Eintrag im Archiv. null, wenn der Eintrag nicht im Archiv vorhanden ist. + Ein Pfad relativ zum Stamm des Archivs, das den Eintrag identifiziert, der abgerufen werden soll. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ruft einen Wert ab, der den Typ der Aktion beschreibt, die das ZIP-Archiv für Einträge ausführen kann. + Einer der Enumerationswerte, der den Typ der Aktion (Lesen, Erstellen oder Update) beschreibt, die das Zip-Archiv bei Einträgen ausführen kann. + + + Stellt eine komprimierte Datei in einem Zip-Archiv dar. + + + Ruft das Zip-Archiv ab, zu dem der Eintrag gehört. + Das Zip-Archiv, zu dem der Eintrag gehört, oder null, wenn der Eintrag gelöscht wurde. + + + Ruft die komprimierte Größe des unkomprimierten Eintrags im ZIP-Archiv ab. + Die Größe des komprimierten Eintrags im ZIP-Archiv. + The value of the property is not available because the entry has been modified. + + + Löscht den Eintrag aus dem Zip-Archiv. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Ruft den relativen Pfad des Eintrags im ZIP-Archiv ab. + Der relative Pfad des Eintrags im Zip-Archiv. + + + Ruft den letzten Zeitpunkt ab, zu dem der Eintrag im Zip-Archiv geändert wurde, oder legt diesen fest. + Der letzte Zeitpunkt, an dem der Eintrag im ZIP-Archiv geändert wurde. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Ruft die Größe des unkomprimierten Eintrags im ZIP-Archiv ab. + Die Größe des unkomprimierten Eintrags im ZIP-Archiv. + The value of the property is not available because the entry has been modified. + + + Ruft den Dateinamen des Eintrags im ZIP-Archiv ab. + Der Dateiname des Eintrags im ZIP-Archiv. + + + Öffnet den Eintrag aus dem Zip-Archiv. + Der Stream, der den Inhalt des Eintrags darstellt. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Ruft den relativen Pfad des Eintrags im Zip-Archiv ab. + Der relative Pfad des Eintrags, der in der -Eigenschaft gespeichert ist. + + + Gibt Werte für die Interaktion mit Zip-Archiveinträgen an. + + + Nur das Erstellen neuer Archiveinträge ist zulässig. + + + Nur das Lesen von Archiveinträgen ist zulässig. + + + Lese- und Schreibvorgänge sind für die Archiveinträge zulässig. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/es/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/es/System.IO.Compression.xml new file mode 100644 index 0000000..7c623af --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/es/System.IO.Compression.xml @@ -0,0 +1,420 @@ + + + + System.IO.Compression + + + + Especifica valores que indican si una operación de compresión hace hincapié en la velocidad o en el tamaño de la compresión. + + + La operación de compresión debe completarse lo antes posible, aunque el archivo resultante no esté comprimido de forma óptima. + + + No debe comprimirse el archivo. + + + La operación de compresión se debe comprimir de forma óptima, incluso aunque la operación tarde más tiempo en completarse. + + + Especifica si se comprime o descomprime la secuencia subyacente. + + + Comprime la secuencia subyacente. + + + Descomprime la secuencia subyacente. + + + Proporciona métodos y propiedades para comprimir y descomprimir secuencias usando el algoritmo Deflate. + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados. + Secuencia que se va a comprimir. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia que se va a comprimir. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + true para mantener el objeto de secuencia abierto después de desechar el objeto ; en caso contrario, false. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados. + Secuencia que se va a comprimir o descomprimir. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia que se va a comprimir o descomprimir. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + true para mantener la secuencia abierta después de desechar el objeto ; en caso contrario, false. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Obtiene una referencia a la secuencia subyacente. + Un objeto de secuencia que representa la secuencia subyacente. + La secuencia subyacente está cerrada. + + + Obtiene un valor que indica si la secuencia admite operaciones de lectura mientras se descomprime un archivo. + Es true si el valor es Decompress, y la secuencia subyacente está abierta y admite operaciones de lectura; de lo contrario, es false. + + + Obtiene un valor que indica si la secuencia admite operaciones de búsqueda. + false en todos los casos. + + + Obtiene un valor que indica si la secuencia admite operaciones de escritura. + true si el valor de es Compress y la secuencia subyacente admite operaciones de escritura y no está cerrada; en caso contrario, false. + + + Libera los recursos no administrados que usa y libera los recursos administrados de forma opcional. + Es true para liberar tanto recursos administrados como no administrados; es false para liberar únicamente recursos no administrados. + + + La implementación actual de este método no tiene funcionalidad. + La secuencia está cerrada. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Introduce varios bytes descomprimidos leídos en la matriz de bytes especificada. + Número de bytes leídos de la matriz de bytes. + Matriz para almacenar los bytes descomprimidos. + Desplazamiento de bytes en donde se colocarán los bytes leídos. + Número máximo de bytes descomprimidos que se van a leer. + El valor de es null. + El valor era Compress cuando se creó el objeto.o bien La secuencia subyacente no admite operaciones de lectura. + + o es menor que cero.o bien longitud menos el punto inicial del índice es menor que . + El formato de los datos no es válido. + La secuencia está cerrada. + + + Esta operación no se admite y siempre produce una excepción . + Un valor largo. + Ubicación en la secuencia. + Uno de los valores de . + Esta propiedad no se admite en esta secuencia. + + + Esta operación no se admite y siempre produce una excepción . + Longitud de la secuencia. + Esta propiedad no se admite en esta secuencia. + + + Escribe los bytes comprimidos en la secuencia subyacente de la matriz de bytes especificada. + Búfer que contiene los datos que se van a comprimir. + Desplazamiento de bytes en donde se leerán los bytes. + Número máximo de bytes que se pueden escribir. + + + Proporciona los métodos y propiedades que permiten comprimir y descomprimir secuencias. + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados. + Secuencia en la que se van a escribir los datos comprimidos. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y nivel de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia en la que se van a escribir los datos comprimidos. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al comprimir la secuencia. + true para mantener el objeto de secuencia abierto después de desechar el objeto ; en caso contrario, false. + El valor de es null. + La secuencia no admite operaciones de escritura como compresión.(El es propiedad del objeto de secuencia false.) + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados. + Secuencia en la que se escriben los datos comprimidos o descomprimidos. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + El valor de es null. + + no es válida valor de enumeración.o bien es y es false.o bien es y es false. + + + Inicializa una nueva instancia de la clase usando la secuencia y modo de compresión especificados y, opcionalmente, deja la secuencia abierta. + Secuencia en la que se escriben los datos comprimidos o descomprimidos. + Uno de los valores de la enumeración que indica si se debe comprimir o descomprimir la secuencia. + true para mantener la secuencia abierta después de desechar el objeto ; en caso contrario, false. + El valor de es null. + + no es válida valor.o bien es y es false.o bien es y es false. + + + Obtiene una referencia a la secuencia subyacente. + Un objeto de secuencia que representa la secuencia subyacente. + La secuencia subyacente está cerrada. + + + + + + Obtiene un valor que indica si la secuencia admite operaciones de lectura mientras se descomprime un archivo. + true si el valor de es Decompress, y la secuencia subyacente admite operaciones de lectura y no está cerrada; en caso contrario, false. + + + + + + Obtiene un valor que indica si la secuencia admite operaciones de búsqueda. + false en todos los casos. + + + Obtiene un valor que indica si la secuencia admite operaciones de escritura. + true si el valor de es Compress y la secuencia subyacente admite operaciones de escritura y no está cerrada; en caso contrario, false. + + + + + + Libera los recursos no administrados que usa y libera los recursos administrados de forma opcional. + Es true para liberar tanto recursos administrados como no administrados; es false para liberar únicamente recursos no administrados. + + + La implementación actual de este método no tiene funcionalidad. + La secuencia está cerrada. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Esta propiedad no se admite en esta secuencia. + + + + + + Introduce varios bytes descomprimidos leídos en la matriz de bytes especificada. + El número de bytes que se han descomprimido en la matriz de bytes.Si se ha llegado al final de la secuencia, se devuelve cero o el número de bytes leídos. + Matriz que se utiliza para almacenar los bytes descomprimidos. + Desplazamiento de bytes en donde se colocarán los bytes leídos. + Número máximo de bytes descomprimidos que se van a leer. + El valor de es null. + El valor era Compress cuando se creó el objeto.o bienLa secuencia subyacente no admite operaciones de lectura. + + o es menor que cero.o bien longitud menos el punto inicial del índice es menor que . + El formato de los datos no es válido. + La secuencia está cerrada. + + + Esta propiedad no se admite y siempre produce una excepción . + Un valor largo. + Ubicación en la secuencia. + Uno de los valores de . + Esta propiedad no se admite en esta secuencia. + + + Esta propiedad no se admite y siempre produce una excepción . + Longitud de la secuencia. + Esta propiedad no se admite en esta secuencia. + + + Escribe los bytes comprimidos en la secuencia subyacente de la matriz de bytes especificada. + Búfer que contiene los datos que se van a comprimir. + Desplazamiento de bytes en donde se leerán los bytes. + Número máximo de bytes que se pueden escribir. + La operación de escritura no se puede realizar porque la secuencia está cerrada. + + + Representa un paquete de archivos comprimidos en formato de archivo zip. + + + Inicializa una nueva instancia de la clase a partir de la secuencia especificada. + Secuencia que contiene el archivo que se va a leer. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Inicializa una nueva instancia de la clase a partir de la secuencia especificada y con el modo especificado. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inicializa una nueva instancia de la clase en el flujo especificado para el modo especificado y, opcionalmente, deja el flujo abierto. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + true para dejar el flujo abierto después de desechar el objeto ; de lo contrario, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inicializa una nueva instancia de la clase en el flujo especificado para el modo especificado, usa la codificación especificada para los nombres de entrada y opcionalmente deja el flujo abierto. + Flujo de entrada o de salida. + Uno de los valores de enumeración que indica si el archivo zip se usa para leer, crear o actualizar entradas. + true para dejar el flujo abierto después de desechar el objeto ; de lo contrario, false. + Codificación que se va a usar al leer o escribir nombres de entrada en este archivo.Especifique un valor para este parámetro únicamente cuando se necesite una codificación para la interoperabilidad con herramientas y bibliotecas de archivos zip que no admiten la codificación UTF-8 para los nombres de entrada. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crea una entrada vacía en el archivo zip con la ruta de acceso y el nombre de entrada especificados. + Una entrada vacía en el archivo zip. + Ruta de acceso, relativa a la raíz del archivo, que especifica el nombre de la entrada que se va a crear. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crea una entrada vacía en el archivo zip con el nombre de entrada y el nivel de compresión especificados. + Una entrada vacía en el archivo zip. + Ruta de acceso, relativa a la raíz del archivo, que especifica el nombre de la entrada que se va a crear. + Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Libera los recursos utilizados por la instancia actual de la clase . + + + Llamado por los métodos y para liberar los recursos no administrados utilizados por la instancia actual de la clase de , y termina opcionalmente de escribir el archivo y libera los recursos administrados. + true para terminar de escribir el archivo y liberar recursos no administrados y administrados; false para liberar solo recursos no administrados. + + + Obtiene la colección de entradas que están actualmente en el archivo zip. + La colección de entradas que están actualmente en el archivo zip. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Recupera un contenedor para la entrada especificada en el archivo zip. + Un contenedor para la entrada especificada en el archivo; null si la entrada no existe en el archivo. + Ruta de acceso, relativa a la raíz del archivo, que identifica la entrada a recuperar. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Obtiene un valor que describe el tipo de acción que el archivo zip puede realizar en las entradas. + Uno de los valores de enumeración que describe el tipo de acción (lectura, creación o actualización) que puede realizar el archivo zip en las entradas. + + + Representa un archivo comprimido incluido en un archivo zip. + + + Obtiene el archivo zip al que pertenece la entrada. + El archivo zip al que pertenece la entrada o null si se ha eliminado la entrada. + + + Obtiene el tamaño comprimido de la entrada en el archivo zip. + Tamaño comprimido de la entrada en el archivo zip. + The value of the property is not available because the entry has been modified. + + + Elimina la entrada del archivo zip. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Obtiene la ruta de acceso relativa de la entrada en el archivo zip. + Ruta de acceso relativa de la entrada en el archivo zip. + + + Obtiene o establece la última vez que se cambió la entrada en el archivo zip. + Última vez que la entrada del archivo zip se cambió. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Obtiene el tamaño descomprimido de la entrada en el archivo zip. + Tamaño descomprimido de la entrada en el archivo zip. + The value of the property is not available because the entry has been modified. + + + Obtiene el nombre de archivo de la entrada en el archivo zip. + Nombre de archivo de la entrada en el archivo zip. + + + Abre la entrada desde el archivo zip. + La secuencia que representa el contenido de la entrada. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Recupera la ruta de acceso relativa de la entrada en el archivo zip. + La ruta de acceso relativa de la entrada, que es el valor almacenado en la propiedad . + + + Especifica los valores para interactuar con entradas de archivo zip. + + + Solo se permite crear nuevas entradas de archivo. + + + Solo se permite leer entradas del archivo. + + + Ambas operaciones de lectura y escritura se permiten para las entradas del archivo. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/fr/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/fr/System.IO.Compression.xml new file mode 100644 index 0000000..c26ff35 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/fr/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Spécifie les valeurs qui indiquent si une opération de compression souligne la rapidité ou la taille de compression. + + + L'opération de compression doit s'exécuter aussi rapidement que possible, même si le fichier résultant n'est pas compressé de manière optimale. + + + Aucune compression ne doit être exécutée sur le fichier. + + + L'opération de compression doit être compressée de manière optimale, même si elle prend plus de temps. + + + Spécifie s'il faut compresser ou décompresser le flux sous-jacent. + + + Compresse le flux sous-jacent. + + + Décompresse le flux sous-jacent. + + + Fournit des méthodes et des propriétés pour compresser et décompresser des flux à l'aide de l'algorithme Deflate. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés. + Flux à compresser. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux à compresser. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + true pour maintenir l'objet de flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés. + Flux à compresser ou à décompresser. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux à compresser ou à décompresser. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Obtient une référence au flux sous-jacent. + Objet de flux qui représente le flux sous-jacent. + Le flux sous-jacent est fermé. + + + Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. + true si la valeur est Decompress, que le flux sous-jacent est ouvert et qu'il prend en charge la lecture ; sinon, false. + + + Obtient une valeur indiquant si le flux prend en charge la recherche. + false dans tous les cas. + + + Obtient une valeur indiquant si le flux prend en charge l'écriture. + true si la valeur de est Compress, que le flux sous-jacent prend en charge l'écriture et qu'il n'est pas fermé ; sinon, false. + + + Libère les ressources non managées utilisées par et libère éventuellement les ressources managées. + true pour libérer les ressources managées et non managées ; false pour ne libérer que les ressources non managées. + + + L'implémentation actuelle de cette méthode n'a aucune fonctionnalité. + Le flux est fermé. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. + Nombre d'octets qui ont été lus dans le tableau d'octets. + Tableau utilisé pour stocker les octets décompressés. + Dans , décalage d'octet auquel les octets lus seront placés. + Nombre maximal d'octets décompressés à lire. + + a la valeur null. + La valeur était Compress lorsque l'objet a été créé.ou Le flux sous-jacent ne prend pas en charge la lecture. + + ou est inférieur à zéro.ouLa longueur de moins le point de départ de l'index est inférieure à . + Le format des données n'est pas valide. + Le flux est fermé. + + + Cette opération n'est pas prise en charge et lève toujours . + Valeur Long. + Emplacement dans le flux. + Une des valeurs de . + Cette propriété n'est pas prise en charge sur ce flux. + + + Cette opération n'est pas prise en charge et lève toujours . + Longueur du flux. + Cette propriété n'est pas prise en charge sur ce flux. + + + Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. + Mémoire tampon qui contient les données à compresser. + Dans , décalage d'octet à partir duquel les octets seront lus. + Nombre maximal d'octets à écrire. + + + Fournit les méthodes et les propriétés utilisées pour compresser et décompresser des flux. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés. + Flux dans lequel écrire les données compressées. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du niveau de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux dans lequel écrire les données compressées. + L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur la rapidité et l'efficacité de compression en compressant le flux de données. + true pour maintenir l'objet de flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + Le flux ne prend pas en charge les opérations d'écriture telles que la compression.(La propriété sur l'objet de flux est false.) + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés. + Flux dans lequel les données compressées ou décompressées sont écrites. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + + a la valeur null. + + n'est pas une valeur d'énumération valide.ou est et est false.ou est et est false. + + + Initialise une nouvelle instance de la classe à l'aide du flux et du mode de compression spécifiés, et permet éventuellement de laisser le flux ouvert. + Flux dans lequel les données compressées ou décompressées sont écrites. + L'une des valeurs d'énumération qui indique s'il faut compresser ou décompresser le flux. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + + a la valeur null. + + n'est pas une valeur valide.ou est et est false.ou est et est false. + + + Obtient une référence au flux sous-jacent. + Objet de flux qui représente le flux sous-jacent. + Le flux sous-jacent est fermé. + + + + + + Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. + true si la valeur de est Decompress,, que le flux sous-jacent prend en charge la lecture et qu'il n'est pas fermé ; sinon, false. + + + + + + Obtient une valeur indiquant si le flux prend en charge la recherche. + false dans tous les cas. + + + Obtient une valeur indiquant si le flux prend en charge l'écriture. + true si la valeur de est Compress, que le flux sous-jacent prend en charge l'écriture et qu'il n'est pas fermé ; sinon, false. + + + + + + Libère les ressources non managées utilisées par l'objet et libère éventuellement les ressources managées. + true pour libérer les ressources managées et non managées ; false pour ne libérer que les ressources non managées. + + + L'implémentation actuelle de cette méthode n'a aucune fonctionnalité. + Le flux est fermé. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Cette propriété n'est pas prise en charge sur ce flux. + + + + + + Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. + Nombre d'octets qui ont été décompressés dans le tableau d'octets.Si la fin du flux a été atteinte, zéro ou le nombre d'octets lus est retourné. + Tableau utilisé pour décompresser les octets. + Dans , décalage d'octet auquel les octets lus seront placés. + Nombre maximal d'octets décompressés à lire. + + a la valeur null. + La valeur était Compress lorsque l'objet a été créé.ouLe flux sous-jacent ne prend pas en charge la lecture. + + ou est inférieur à zéro.ouLa longueur de moins le point de départ de l'index est inférieure à . + Le format des données n'est pas valide. + Le flux est fermé. + + + Cette propriété n'est pas prise en charge et lève toujours . + Valeur Long. + Emplacement dans le flux. + Une des valeurs de . + Cette propriété n'est pas prise en charge sur ce flux. + + + Cette propriété n'est pas prise en charge et lève toujours . + Longueur du flux. + Cette propriété n'est pas prise en charge sur ce flux. + + + Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. + Mémoire tampon qui contient les données à compresser. + Dans , décalage d'octet à partir duquel les octets seront lus. + Nombre maximal d'octets à écrire. + L'opération d'écriture ne peut pas être exécutée car le flux est fermé. + + + Représente un package de fichiers compressés au format d'archivage zip. + + + Initialise une nouvelle instance de la classe à partir du flux spécifié. + Flux qui contient l'archive à lire. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Initialise une nouvelle instance de la classe à partir du flux spécifié et avec le mode spécifié. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialise une nouvelle instance de la classe sur le flux de données spécifié pour le mode spécifié, et laisse éventuellement le flux ouvert. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Initialise une nouvelle instance de la classe sur le flux spécifié pour le mode spécifié, utilise l'encodage spécifié pour les noms d'entrée, et permet éventuellement de laisser le flux ouvert. + Flux de sortie ou d'entrée. + Une des valeurs d'énumération qui indique si l'archive zip est utilisée pour lire, créer ou mettre à jour des entrées. + true pour maintenir le flux ouvert après avoir supprimé l'objet  ; sinon, false. + Encodage à utiliser lors de la lecture ou de l'écriture des noms d'entrée dans cette archive.Spécifie une valeur pour ce paramètre seulement quand un encodage est obligatoire pour l'interopérabilité avec les outils et les bibliothèques d'archivage zip qui ne prennent pas en charge l'encodage UTF-8 pour les noms d'entrée. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crée une entrée vide qui a le chemin d'accès et le nom d'entrée spécifiés dans l'archive zip. + Entrée vide dans l'archive zip. + Chemin d'accès relatif à la racine de l'archive, qui spécifie le nom de l'entrée à créer. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crée une entrée vide qui a le nom d'entrée et le niveau de compression spécifiés dans l'archive zip. + Entrée vide dans l'archive zip. + Chemin d'accès relatif à la racine de l'archive, qui spécifie le nom de l'entrée à créer. + Une des valeurs d'énumération qui indique s'il faut privilégier la rapidité ou l'efficacité de la compression lors de la création de l'entrée. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Libère les ressources utilisées par l'instance actuelle de la classe . + + + Appelée par les méthodes et pour libérer les ressources non managées utilisées par l'instance actuelle de la classe , et éventuellement finit d'écrire l'archive et libère les ressources managées. + true pour finir l'écriture de l'archive et libérer les ressources managées et non managées ; false pour libérer seulement des ressources non managées. + + + Obtient la collection d'entrées figurant actuellement dans l'archive zip. + Collection d'entrées figurant actuellement dans l'archive zip. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Récupère un wrapper pour l'entrée spécifiée dans l'archive zip. + Wrapper pour l'entrée spécifiée dans l'archive ; null si l'entrée n'existe pas dans l'archive. + Chemin d'accès relatif à la racine de l'archive, qui identifie l'entrée à récupérer. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Obtient une valeur qui décrit le type d'action que l'archive zip peut effectuer sur des entrées. + Une des valeurs d'énumération qui décrit le type d'action (lecture, création ou mise à jour) que l'archive zip peut effectuer sur les entrées. + + + Représente un fichier compressé dans une archive zip. + + + Obtient l'archive zip à laquelle l'entrée appartient. + Archive zip à laquelle l'entrée appartient, ou null si l'entrée a été supprimée. + + + Obtient la taille compressée de l'entrée dans l'archive zip. + Taille compressée de l'entrée dans l'archive zip. + The value of the property is not available because the entry has been modified. + + + Supprime l'entrée de l'archive zip. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Obtient le chemin d'accès relatif de l'entrée dans l'archive zip. + Chemin d'accès relatif de l'entrée dans l'archive zip. + + + Obtient ou définit la date de dernière modification de l'entrée dans l'archive zip. + Date/heure à laquelle l'entrée a été modifiée pour la dernière fois dans l'archive zip. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Obtient la taille décompressée de l'entrée dans l'archive zip. + Taille décompressée de l'entrée dans l'archive zip. + The value of the property is not available because the entry has been modified. + + + Obtient le nom du fichier de l'entrée dans l'archive zip. + Nom de fichier de l'entrée dans l'archive zip. + + + Ouvre l'entrée à partir de l'archive zip. + Flux qui représente le contenu de l'entrée. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Récupère le chemin d'accès relatif de l'entrée dans l'archive zip. + Chemin d'accès relatif de l'entrée, qui est la valeur stockée dans la propriété . + + + Spécifie les valeurs pour interagir avec les entrées d'archive ZIP. + + + Seule la création de nouvelles entrées d'archivage est autorisée. + + + Seule la lecture des entrées d'archivage est autorisée. + + + Les opérations de lecture et d'écriture sont autorisées pour les entrées d'archivage. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/it/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/it/System.IO.Compression.xml new file mode 100644 index 0000000..65f1d34 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/it/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + + Specifica i valori che indicano se un'operazione di compressione privilegia le dimensioni di compressione o la velocità. + + + L'operazione di compressione deve essere completata il più rapidamente possibile, anche se il file risultante non è compresso in modo ottimale. + + + Non deve essere eseguita alcuna compressione del file. + + + L'operazione di compressione deve essere compressa in modo ottimale, anche se l'operazione richiede più tempo per il completamento. + + + Specifica se comprimere o decomprimere il flusso sottostante. + + + Comprime il flusso sottostante. + + + Decomprime il flusso sottostante. + + + Fornisce metodi e proprietà per la compressione e la decompressione dei flussi mediante l'algoritmo Deflate. + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. + Flusso da comprimere. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. Facoltativamente mantiene aperto il flusso. + Flusso da comprimere. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + true per mantenere l'oggetto flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. + Flusso da comprimere o decomprimere. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. Facoltativamente mantiene aperto il flusso. + Flusso da comprimere o decomprimere. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Ottiene un riferimento al flusso sottostante. + Oggetto flusso che rappresenta il flusso sottostante. + Il flusso sottostante è chiuso. + + + Ottiene un valore che indica se il flusso supporta la lettura durante la decompressione di un file. + true se il valore di è Decompress e il flusso sottostante è aperto e supporta la lettura; in caso contrario, false. + + + Ottiene un valore che indica se il flusso supporta la ricerca. + false in tutti i casi. + + + Ottiene un valore che indica se il flusso supporta la scrittura. + true se il valore di è Compress e il flusso sottostante non è chiuso e supporta la scrittura; in caso contrario, false. + + + Rilascia le risorse non gestite usate da e, facoltativamente, le risorse gestite. + true per rilasciare sia le risorse gestite sia quelle non gestite; false per rilasciare solo le risorse non gestite. + + + L'implementazione corrente di questo metodo non presenta alcuna funzionalità. + Il flusso è chiuso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Legge un numero di byte decompressi nella matrice di byte specificata. + Numero di byte letti nella matrice di byte. + Matrice per archiviare i byte decompressi. + Offset dei byte in in corrispondenza del quale cui verranno inseriti i byte letti. + Numero massimo di byte decompressi da leggere. + + è null. + Al momento della creazione dell'oggetto, il valore di era Compress.-oppure- Il flusso sottostante non supporta la lettura. + + o è minore di zero.-oppure-La lunghezza di meno il punto iniziale dell'indice è minore di . + Il formato dei dati non è valido. + Il flusso è chiuso. + + + Questa operazione non è supportata e genera sempre un'eccezione . + Valore long. + Posizione all'interno del flusso. + Uno dei valori di . + Questa proprietà non è supportata su questo flusso. + + + Questa operazione non è supportata e genera sempre un'eccezione . + Lunghezza del flusso. + Questa proprietà non è supportata su questo flusso. + + + Scrive i byte compressi nel flusso sottostante dalla matrice di byte specificata. + Buffer contenente i dati da comprimere. + Offset dei byte in da cui verranno letti i byte. + Numero massimo di byte da scrivere. + + + Fornisce i metodi e le proprietà usate per comprimere e decomprimere i flussi. + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. + Flusso in cui scrivere i dati compressi. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando il livello di compressione del flusso specificato. Facoltativamente mantiene aperto il flusso. + Flusso in cui scrivere i dati compressi. + Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si comprime il flusso. + true per mantenere l'oggetto flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + Il flusso non supporta le operazioni di scrittura come la compressione.(La proprietà di sull'oggetto di flusso è false). + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. + Flusso in cui vengono scritti i dati compressi e decompressi. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + + è null. + + non è un valore dell'enumerazione valido.-oppure- è e è false.-oppure- è e è false. + + + Inizializza una nuova istanza della classe usando la modalità di compressione del flusso specificata. Facoltativamente mantiene aperto il flusso. + Flusso in cui vengono scritti i dati compressi e decompressi. + Uno dei valori di enumerazione che indica se comprimere o decomprimere il flusso. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + + è null. + + non è un valore di valido.-oppure- è e è false.-oppure- è e è false. + + + Ottiene un riferimento al flusso sottostante. + Oggetto flusso che rappresenta il flusso sottostante. + Il flusso sottostante è chiuso. + + + + + + Ottiene un valore che indica se il flusso supporta la lettura durante la decompressione di un file. + true se il valore di è Decompress, e il flusso sottostante non è chiuso e supporta la lettura; in caso contrario, false. + + + + + + Ottiene un valore che indica se il flusso supporta la ricerca. + false in tutti i casi. + + + Ottiene un valore che indica se il flusso supporta la scrittura. + true se il valore di è Compress e il flusso sottostante non è chiuso e supporta la scrittura; in caso contrario, false. + + + + + + Rilascia le risorse non gestite usate da e, facoltativamente, le risorse gestite. + true per rilasciare sia le risorse gestite sia quelle non gestite; false per rilasciare solo le risorse non gestite. + + + L'implementazione corrente di questo metodo non presenta alcuna funzionalità. + Il flusso è chiuso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Questa proprietà non è supportata su questo flusso. + + + + + + Legge un numero di byte decompressi nella matrice di byte specificata. + Numero di byte decompressi nella matrice di byte.Se è stata raggiunta la fine del flusso, viene restituito zero o il numero di byte letto. + Matrice usata per archiviare i byte decompressi. + Offset dei byte in in corrispondenza del quale cui verranno inseriti i byte letti. + Numero massimo di byte decompressi da leggere. + + è null. + Al momento della creazione dell'oggetto, il valore di era Compress.-oppure-Il flusso sottostante non supporta la lettura. + + o è minore di zero.-oppure-La lunghezza di meno il punto iniziale dell'indice è minore di . + Il formato dei dati non è valido. + Il flusso è chiuso. + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Valore long. + Posizione all'interno del flusso. + Uno dei valori di . + Questa proprietà non è supportata su questo flusso. + + + Questa proprietà non è supportata e genera sempre un'eccezione . + Lunghezza del flusso. + Questa proprietà non è supportata su questo flusso. + + + Scrive i byte compressi nel flusso sottostante dalla matrice di byte specificata. + Buffer contenente i dati da comprimere. + Offset dei byte in da cui verranno letti i byte. + Numero massimo di byte da scrivere. + Non è possibile eseguire l'operazione di scrittura perché il flusso è chiuso. + + + Rappresenta un pacchetto di file compressi nel formato di archiviazione ZIP. + + + Inizializza una nuova istanza della classe dal flusso specificato. + Flusso che contiene l'archivio da leggere. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Inizializza una nuova istanza della classe dal flusso specificato e con la modalità specificata. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inizializza una nuova istanza della classe sulla base del flusso specificato per la modalità specificata e, facoltativamente, mantiene aperto il flusso. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Inizializza una nuova istanza della classe sulla base del flusso specificato per la modalità specificata. Usa la codifica specificata per i nomi delle voci e, facoltativamente, mantiene aperto il flusso. + Flusso di input o output. + Uno dei valori di enumerazione che indica se l'archivio ZIP viene usato per leggere, creare o aggiornare le voci. + true per mantenere il flusso aperto dopo avere eliminato l'oggetto ; in caso contrario, false. + La codifica da usate durante la lettura o la scrittura dei nomi delle voci in questo archivio.Specificare un valore per il parametro solo quando una codifica è obbligatoria per l'interoperabilità con gli strumenti e le librerie dell'archivio ZIP che non supportano la codifica UTF-8 per i nomi di voce. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Crea una voce vuota con il percorso e il nome della voce specificati nell'archivio ZIP. + Voce vuota nell'archivio ZIP. + Percorso, relativo alla radice dell'archivio, che specifica il nome della voce da creare. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Crea una voce vuota con il livello di compressione e il nome voce specificati nell'archivio ZIP. + Voce vuota nell'archivio ZIP. + Percorso, relativo alla radice dell'archivio, che specifica il nome della voce da creare. + Uno dei valori di enumerazione che indica se privilegiare la velocità o l'efficacia di compressione quando si crea la voce. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Rilascia le risorse usate dall'istanza corrente della classe . + + + Viene chiamato dai metodi e per rilasciare le risorse non gestite usate dall'istanza corrente della classe e, facoltativamente, completa la scrittura dell'archivio e rilascia le risorse gestite. + true per completare la scrittura dell'archivio e rilasciare le risorse gestite e non gestite; false per rilasciare solo le risorse non gestite. + + + Ottiene la raccolta di voci attualmente presenti nell'archivio ZIP. + La raccolta di voci attualmente presenti nell'archivio ZIP. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Recupera un wrapper per la voce specificata nell'archivio ZIP. + Wrapper per la voce specificata nell'archivio; null se la voce non esiste nell'archivio. + Percorso, relativo alla radice dell'archivio, che identifica la voce da recuperare. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Ottiene un valore che descrive il tipo di azione che l'archivio ZIP può eseguire sulle voci. + Uno dei valori di enumerazione che descrive il tipo di azione (leggere, creare o aggiornare) che l'archivio ZIP può eseguire sulle voci. + + + Rappresenta un file compresso in un archivio ZIP. + + + Ottiene l'archivio ZIP cui appartiene la voce. + Archivio ZIP cui appartiene la voce o null se la voce è stata eliminata. + + + Ottiene la dimensione compressa della voce nell'archivio ZIP. + La dimensione compressa della voce nell'archivio ZIP. + The value of the property is not available because the entry has been modified. + + + Elimina la voce dall'archivio ZIP. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Ottiene il percorso relativo della voce nell'archivio ZIP. + Percorso relativo della voce nell'archivio ZIP. + + + Ottiene o imposta l'ultima volta in cui la voce nell'archivio ZIP è stata modificata. + L'ultima volta in cui la voce nell'archivio ZIP è stata modificata. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Ottiene la dimensione non compressa della voce nell'archivio ZIP. + Dimensione non compressa della voce nell'archivio ZIP. + The value of the property is not available because the entry has been modified. + + + Ottiene il nome file della voce nell'archivio ZIP. + Nome file della voce nell'archivio ZIP. + + + Apre la voce dall'archivio ZIP. + Flusso che rappresenta il contenuto della voce. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Recupera il percorso relativo della voce nell'archivio ZIP. + Percorso relativo della voce, ovvero il valore archiviato nella proprietà . + + + Specifica i valori per l'interazione con le voci dell'archivio ZIP. + + + È consentita solo la creazione di nuove voci dell'archivio. + + + È consentita solo la lettura delle voci dell'archivio. + + + Sono consentite sia operazioni in lettura che in scrittura per le voci dell'archivio. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ja/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ja/System.IO.Compression.xml new file mode 100644 index 0000000..5a11299 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ja/System.IO.Compression.xml @@ -0,0 +1,446 @@ + + + + System.IO.Compression + + + + 圧縮操作で速度または圧縮サイズのどちらを重視するかどうかを示す値を指定します。 + + + 圧縮後のファイルは最適な圧縮ではなくても、圧縮操作はできるだけ迅速に完了する必要があります。 + + + ファイルに対して圧縮を行いません。 + + + 圧縮操作の操作が完了するまでに時間がかかりますが、圧縮操作は最適に圧縮する必要があります。 + + + 基になるストリームを圧縮するのか、または圧縮解除するのかを指定します。 + + + 基になるストリームを圧縮します。 + + + 基になるストリームを圧縮解除します。 + + + Deflate アルゴリズムを使用してストリームを圧縮および圧縮解除するためのメソッドとプロパティを提供します。 + + + 指定したストリームと圧縮レベルを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮するストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮レベルを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮するストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリーム オブジェクトを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮モードを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮または圧縮解除するストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 指定したストリームと圧縮モードを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮または圧縮解除するストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 基になるストリームへの参照を取得します。 + 基になるストリームを表すストリーム オブジェクト。 + 基になるストリームが閉じられました。 + + + ファイルの圧縮解除中にストリームが読み取りをサポートするかどうかを示す値を取得します。 + + 値が Decompress で、基になるストリームが開いており、読み取りをサポートしている場合は true。それ以外の場合は false。 + + + ストリームがシークをサポートしているかどうかを示す値を取得します。 + 常に false。 + + + ストリームが書き込みをサポートしているかどうかを示す値を取得します。 + + 値が Compress で、基になるストリームが書き込みをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + で使用されているアンマネージ リソースを解放し、オプションでマネージ リソースを解放します。 + マネージ リソースとアンマネージ リソースの両方を解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在実装されているこのメソッドは、何の機能も提供しません。 + ストリームが閉じられました。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + 圧縮解除されたバイト数を、指定したバイト配列に読み取ります。 + バイト配列に読み取られたバイト数。 + 圧縮解除されたバイトを格納するための配列。 + 読み取られるバイトが配置される 内のバイト オフセット。 + 読み取られる、圧縮解除されたバイトの最大数。 + + は null です。 + オブジェクトが作成されたとき、 値が Compress でした。または 基になるストリームが読み取りをサポートしていません。 + + または が 0 未満です。または の長さからインデックスの開始点を引いた値が 未満です。 + データ形式が無効です。 + ストリームが閉じられました。 + + + この操作はサポートされていないため、常に をスローします。 + long 値。 + ストリーム内の位置。 + + 値の 1 つ。 + このストリームでは、このプロパティはサポートされていません。 + + + この操作はサポートされていないため、常に をスローします。 + ストリーム長。 + このストリームでは、このプロパティはサポートされていません。 + + + 圧縮されたバイトを、指定したバイト配列から基になるストリームに書き込みます。 + 圧縮するデータを格納しているバッファー。 + バイトの読み取り元となる 内のバイト オフセット。 + 書き込む最大バイト数。 + + + ストリームの圧縮および圧縮解除を実行するために使用するメソッドとプロパティを提供します。 + + + 指定したストリームと圧縮レベルを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮されたデータを書き込むストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮レベルを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮されたデータを書き込むストリーム。 + ストリームの圧縮時に速度または圧縮の効率性を強調するかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリーム オブジェクトを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + ストリームは圧縮などの書き込み操作をサポートしません。(ストリーム オブジェクトの プロパティは false です) + + + 指定したストリームと圧縮モードを使用して、 クラスの新しいインスタンスを初期化します。 + 圧縮されたデータまたは圧縮解除されたデータが書き込まれるストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + は null です。 + + が有効な 列挙値ではありません。または で、 が false です。または で、 が false です。 + + + 指定したストリームと圧縮モードを使用して クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 圧縮されたデータまたは圧縮解除されたデータが書き込まれるストリーム。 + ストリームを圧縮するか圧縮解除するかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + + は null です。 + + が有効な 値ではありません。または で、 が false です。または で、 が false です。 + + + 基になるストリームへの参照を取得します。 + 基になるストリームを表すストリーム オブジェクト。 + 基になるストリームが閉じられました。 + + + + + + ファイルの圧縮解除中にストリームが読み取りをサポートするかどうかを示す値を取得します。 + + 値が Decompress, で、基になるストリームが読み取りをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + + + ストリームがシークをサポートしているかどうかを示す値を取得します。 + 常に false。 + + + ストリームが書き込みをサポートしているかどうかを示す値を取得します。 + + 値が Compress で、基になるストリームが書き込みをサポートし、閉じられていない場合は true。それ以外の場合は false。 + + + + + + + で使用されているアンマネージ リソースを解放し、オプションでマネージ リソースを解放します。 + マネージ リソースとアンマネージ リソースの両方を解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在実装されているこのメソッドは、何の機能も提供しません。 + ストリームが閉じられました。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + このストリームでは、このプロパティはサポートされていません。 + + + + + + 圧縮解除されたバイト数を、指定したバイト配列に読み取ります。 + 圧縮解除されバイト配列に読み取られたバイト数。既にストリームの末尾に到達している場合は、ゼロまたは読み取られたバイト数が返されます。 + 圧縮解除されたバイトを格納するために使用する配列。 + 読み取られるバイトが配置される 内のバイト オフセット。 + 読み取られる、圧縮解除されたバイトの最大数。 + + は null です。 + オブジェクトが作成されたとき、 値が Compress でした。または基になるストリームが読み取りをサポートしていません。 + + または が 0 未満です。または の長さからインデックスの開始点を引いた値が 未満です。 + データ形式が無効です。 + ストリームが閉じられました。 + + + このプロパティはサポートされていないため、常に をスローします。 + long 値。 + ストリーム内の位置。 + + 値の 1 つ。 + このストリームでは、このプロパティはサポートされていません。 + + + このプロパティはサポートされていないため、常に をスローします。 + ストリーム長。 + このストリームでは、このプロパティはサポートされていません。 + + + 圧縮されたバイトを、指定したバイト配列から基になるストリームに書き込みます。 + 圧縮するデータを格納しているバッファー。 + バイトの読み取り元となる 内のバイト オフセット。 + 書き込む最大バイト数。 + ストリームが閉じているため、書き込み操作を実行できません。 + + + zip アーカイブ形式の圧縮ファイルのパッケージを表します。 + + + 指定したストリームからの クラスの新しいインスタンスを初期化します。 + 読み取るアーカイブを格納しているストリーム。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 指定したストリームと指定したモードから クラスの新しいインスタンスを初期化します。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定されたモードの指定されたストリームで クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定されたモードの指定されたストリームで クラスの新しいインスタンスを初期化し、エントリ名に指定されたエンコーディングを使用します。また、必要に応じて、ストリームを開いたままにします。 + 入力ストリームまたは出力ストリーム。 + zip のアーカイブがエントリの読み込み、作成、または更新に使用されているかどうかを示す列挙値の 1 つ。 + + オブジェクトを破棄した後にストリームを開いたままにする場合は true、それ以外の場合は false。 + このアーカイブのエントリ名の読み取りまたは書き込み時に使用するエンコード。エントリ名の UTF-8 エンコードをサポートしない zip アーカイブ ツールとライブラリとの相互運用性のためにエンコードが必要な場合にのみ、このパラメーターの値を指定してください。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 指定したパスとエントリ名を持つ空のエントリを zip アーカイブに作成します。 + zip アーカイブ内の空のエントリ。 + 作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 指定したエントリ名と圧縮レベルを持つ空のエントリを zip アーカイブに作成します。 + zip アーカイブ内の空のエントリ。 + 作成されるエントリの名前を指定する、アーカイブのルートを基準とするパス。 + エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + クラスの現在のインスタンスによって使用されているリソースを解放します。 + + + + クラスの現在のインスタンスによって使用されるアンマネージ リソースを解放するために、 メソッドと メソッドによって呼び出されます。オプションで、アーカイブの書き込みを終了し、マネージ リソースを解放できます。 + アーカイブの書き込みを終了し、アンマネージ リソースとマネージ リソースを解放する場合は true。アンマネージ リソースだけを解放する場合は false。 + + + 現在 zip アーカイブ内にあるエントリのコレクションを取得します。 + 現在 zip アーカイブ内にあるエントリのコレクション。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + zip アーカイブ内の指定したエントリのラッパーを取得します。 + アーカイブ内の指定されたエントリのラッパー。エントリがアーカイブに存在しない場合は null。 + 取得するエントリを識別する、アーカイブのルートを基準とするパス。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + zip アーカイブがエントリで実行できる操作の種類を示す値を取得します。 + zip のアーカイブがエントリ上で実行できる操作の種類 (読み込み、作成、または更新) を示す列挙値の 1 つ。 + + + zip アーカイブ内の圧縮ファイルを表します。 + + + エントリが属する zip アーカイブを取得します。 + エントリが属している zip アーカイブ、または、エントリが削除されている場合は null。 + + + zip アーカイブ内のエントリの圧縮サイズを取得します。 + zip アーカイブ内のエントリの圧縮サイズ。 + The value of the property is not available because the entry has been modified. + + + zip アーカイブからエントリを削除します。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + zip アーカイブ内のエントリの相対パスを取得します。 + zip アーカイブ内のエントリの相対パス。 + + + zip アーカイブのエントリが最後に変更されたときを取得または設定します。 + zip アーカイブ内のエントリが最後に変更された時間。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + zip アーカイブ内のエントリの非圧縮サイズを取得します。 + zip アーカイブ内のエントリの非圧縮サイズ。 + The value of the property is not available because the entry has been modified. + + + zip アーカイブ内のエントリのファイル名を取得します。 + zip アーカイブ内のエントリのファイル名。 + + + zip のアーカイブからエントリを開きます。 + エントリの内容を表すストリーム。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + zip アーカイブ内のエントリの相対パスを取得します。 + エントリの相対パス。これは プロパティに格納されている値です。 + + + zip のアーカイブ エントリとの対話のための値を指定します。 + + + 新しいアーカイブ エントリの作成に限り許可されます。 + + + 新しいアーカイブ エントリの読み込みに限り許可されます。 + + + 読み取りと書き込みの両方の操作がアーカイブ エントリで許可されます。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ko/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ko/System.IO.Compression.xml new file mode 100644 index 0000000..7026417 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ko/System.IO.Compression.xml @@ -0,0 +1,446 @@ + + + + System.IO.Compression + + + + 압축 시 속도를 우선할지 압축 크기를 우선할지를 나타내는 값을 지정합니다. + + + 압축 작업은 결과 파일이 최적으로 압축되지 않더라도 가능한 신속하게 완료되어야 합니다. + + + 파일에 대해 압축을 수행할 수 없습니다. + + + 작업을 완료하는 데 시간이 더 걸리더라도 압축 작업은 최적으로 압축되어야 합니다. + + + 내부 스트림을 압축할지 또는 압축을 풀지 여부를 지정합니다. + + + 내부 스트림을 압축합니다. + + + 내부 스트림의 압축을 풉니다. + + + Deflate 알고리즘을 사용하여 스트림을 압축하고 압축을 풀기 위한 메서드와 속성을 제공합니다. + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축할 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축할 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림 개체를 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축하거나 압축을 풀 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축하거나 압축을 풀 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 내부 스트림에 대한 참조를 가져옵니다. + 내부 스트림을 나타내는 스트림 개체입니다. + 내부 스트림이 닫혀 있는 경우 + + + 파일의 압축을 푸는 동안 스트림을 읽을 수 있는지 여부를 나타내는 값을 가져옵니다. + + 값이 Decompress이고 내부 스트림이 열려 있으며 읽기를 지원하면 true이고, 이외의 경우는 false입니다. + + + 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다. + 모든 경우에 false입니다. + + + 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다. + + 값이 Compress이고 내부 스트림이 쓰기를 지원하며 닫혀 있지 않으면 true이고, 이외의 경우는 false입니다. + + + + 가 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제합니다. + 관리되는 리소스와 관리되지 않는 리소스를 모두 해제하려면 true로 설정하고, 관리되지 않는 리소스만 해제하려면 false로 설정합니다. + + + 이 메서드의 현재 클래스에는 기능이 없습니다. + 스트림이 닫혀 있는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 압축이 풀린 바이트 수를 지정된 바이트 배열로 읽어 들입니다. + 바이트 배열에 읽어 들인 바이트 수입니다. + 압축이 풀린 바이트를 저장할 배열입니다. + 읽은 바이트를 넣을 의 바이트 오프셋입니다. + 읽을 최대 압축 풀린 바이트 수입니다. + + 가 null인 경우 + 개체를 만들 때 값이 Compress였던 경우또는 내부 스트림이 읽기를 지원하지 않는 경우 + + 또는 가 0보다 작은 경우또는 길이에서 인덱스 시작 위치를 뺀 값이 보다 작은 경우 + 데이터의 형식이 잘못된 경우 + 스트림이 닫혀 있는 경우 + + + 이 작업은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 스트림 내의 위치입니다. + + 값 중 하나입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 이 작업은 지원되지 않으며 항상 을 throw합니다. + 스트림의 길이입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 지정된 바이트 배열에서 압축된 바이트를 내부 스트림에 씁니다. + 압축할 데이터가 들어 있는 버퍼입니다. + 바이트를 읽어올 의 바이트 오프셋입니다. + 쓸 최대 바이트 수입니다. + + + 스트림을 압축하거나 압축을 푸는 데 사용되는 메서드 및 속성을 제공합니다. + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축된 데이터를 쓸 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 수준을 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축된 데이터를 쓸 스트림입니다. + 스트림을 압축할 때 속도 또는 압축 효율을 강조할지 여부를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림 개체를 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + 스트림이 압축 등의 쓰기 작업을 지원하지 않습니다.(스트림 개체의 속성이 false입니다.) + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화합니다. + 압축되거나 압축을 푼 데이터가를 쓸 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 가 null인 경우 + + 가 유효한 열거형 값이 아닌 경우또는이고 가 false인 경우또는이고 가 false인 경우 + + + 지정된 스트림과 압축 모드를 사용하여 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둘 수 있습니다. + 압축되거나 압축을 푼 데이터가를 쓸 스트림입니다. + 스트림을 압축할 것인지 또는 압축 해제할 것인지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + + 가 null인 경우 + + 은(는) 올바른 값이 아닙니다.또는이고 가 false인 경우또는이고 가 false인 경우 + + + 내부 스트림에 대한 참조를 가져옵니다. + 내부 스트림을 나타내는 스트림 개체입니다. + 내부 스트림이 닫혀 있는 경우 + + + + + + 파일의 압축을 푸는 동안 스트림을 읽을 수 있는지 여부를 나타내는 값을 가져옵니다. + + 값이 Decompress,이고 내부 스트림이 읽기를 지원하며 닫혀 있지 않으면 true이고, 그렇지 않으면 false입니다. + + + + + + 스트림이 검색을 지원하는지 여부를 나타내는 값을 가져옵니다. + 모든 경우에 false입니다. + + + 스트림이 쓰기를 지원하는지 여부를 나타내는 값을 가져옵니다. + + 값이 Compress이고 내부 스트림이 쓰기를 지원하며 닫혀 있지 않으면 true이고, 이외의 경우는 false입니다. + + + + + + + 에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. + 관리되는 리소스와 관리되지 않는 리소스를 모두 해제하려면 true로 설정하고, 관리되지 않는 리소스만 해제하려면 false로 설정합니다. + + + 이 메서드의 현재 클래스에는 기능이 없습니다. + 스트림이 닫혀 있는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + + + + 압축이 풀린 바이트 수를 지정된 바이트 배열로 읽어 들입니다. + 바이트 배열에 압축이 풀린 바이트 수입니다.스트림의 끝에 도달한 경우에는 0 또는 읽은 바이트 수가 반환됩니다. + 압축이 풀린 바이트를 저장하는 데 사용되는 배열입니다. + 읽은 바이트를 넣을 의 바이트 오프셋입니다. + 읽을 최대 압축 풀린 바이트 수입니다. + + 가 null인 경우 + 개체를 만들 때 값이 Compress였던 경우또는내부 스트림이 읽기를 지원하지 않는 경우 + + 또는 가 0보다 작은 경우또는 길이에서 인덱스 시작 위치를 뺀 값이 보다 작은 경우 + 데이터의 형식이 잘못된 경우 + 스트림이 닫혀 있는 경우 + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + long 값입니다. + 스트림 내의 위치입니다. + + 값 중 하나입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 이 속성은 지원되지 않으며 항상 을 throw합니다. + 스트림의 길이입니다. + 이 스트림에 이 속성이 지원되지 않는 경우 + + + 지정된 바이트 배열에서 압축된 바이트를 내부 스트림에 씁니다. + 압축할 데이터가 들어 있는 버퍼입니다. + 바이트를 읽어올 의 바이트 오프셋입니다. + 쓸 최대 바이트 수입니다. + 스트림이 닫혀 있어서 쓰기 작업을 수행할 수 없는 경우 + + + Zip 보관 파일 형식으로 압축된 파일 패키지를 나타냅니다. + + + 지정된 스트림에서 클래스의 새 인스턴스를 초기화합니다. + 읽을 보관 저장소가 포함된 스트림입니다. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 지정된 모드를 사용하여 지정된 스트림에서 클래스의 새 인스턴스를 초기화합니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 지정된 모드에 대해 지정된 스트림에서 클래스의 새 인스턴스를 초기화하고 스트림을 선택적으로 연 상태로 둡니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 지정된 모드에 대해 지정된 스트림에서 클래스의 새 인스턴스를 초기화하고 항목 이름에 대해 지정된 인코딩을 사용하며 스트림을 선택적으로 연 상태로 둡니다. + 입력 또는 출력 스트림입니다. + Zip 보관 파일이 엔트리를 읽거나 만들기 또는 업데이트하는 데 사용되는지를 나타내는 열거형 값 중 하나입니다. + + 개체를 삭제한 후 스트림을 열어 두려면 true이고, 그렇지 않으면 false입니다. + 이 보관 파일에서 이름을 읽거나 쓰는 동안 사용할 인코딩입니다.인코딩이 항목 이름에 대해 UTF-8 인코딩을 지원하지 않는 Zip 보관 도구와 라이브러리를 사용하여 상호 운용성에 인코딩이 필요할 때만 이 매개 변수에 대한 값을 지정합니다. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Zip 보관 파일에 지정된 경로 및 항목 이름을 가진 빈 항목을 만듭니다. + Zip 보관 파일의 빈 항목입니다. + 만들 항목의 이름을 지정하는, 보관 저장소의 루트에 상대적인 경로입니다. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Zip 보관 파일에 지정된 항목 이름 및 압축 수준을 가진 빈 항목을 만듭니다. + Zip 보관 파일의 빈 항목입니다. + 만들 항목의 이름을 지정하는, 보관 저장소의 루트에 상대적인 경로입니다. + 항목을 만들 때 속도 또는 압축 효율을 강조할지를 나타내는 열거형 값 중 하나입니다. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + + 클래스의 현재 인스턴스에서 사용하는 리소스를 해제합니다. + + + + 클래스의 현재 인스턴스가 사용하는 관리되지 않는 리소스를 해제하기 위해 메서드에 의해 호출되며 선택적으로 보관 파일을 작성하고 관리되는 리소스를 해제합니다. + 보관 파일에 쓰기를 완료하고 관리되지 않은 리소스와 관리되는 리소스를 해제하려면 true이고, 관리되지 않은 리소스만 해제하려면 false입니다. + + + 현재 Zip 보관 파일에 있는 항목의 컬렉션을 가져옵니다. + 현재 Zip 보관 파일에 있는 항목의 컬렉션입니다. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Zip 보관 파일 항목에 대한 래퍼를 검색합니다. + 보관 저장소의 지정된 항목에 대한 래퍼이거나, 항목이 보관 저장소에 없는 경우 null입니다. + 검색할 항목을 식별하는, 보관 저장소의 루트에 상대적인 경로입니다. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Zip 보관 파일이 엔트리에 대해 수행할 수 있는 동작의 유형을 나타내는 값을 가져옵니다. + 엔트리에 Zip 보관 파일을 보관할 수 있는 동작(읽기, 만들기 또는 업데이트) 유형을 설명하는 열거형 값 중 하나입니다. + + + Zip 보관 파일 내의 압축된 파일을 나타냅니다. + + + 엔트리가 속한 Zip 보관 파일을 가져옵니다. + 항목이 속하는 Zip 보관 파일이거나, 항목이 삭제된 경우 null입니다. + + + Zip 보관 파일에 있는 항목의 압축된 크기를 가져옵니다. + Zip 보관 파일에 있는 항목의 압축된 크기입니다. + The value of the property is not available because the entry has been modified. + + + Zip 보관 파일에서 항목을 삭제합니다. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Zip 보관 파일에 있는 항목의 상대 경로를 가져옵니다. + Zip 보관 파일에 있는 항목의 상대 경로입니다. + + + Zip 보관 파일의 항목이 마지막으로 변경된 시간을 가져오거나 설정합니다. + Zip 보관 파일의 항목이 마지막으로 변경된 시간입니다. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Zip 보관 파일에 있는 항목의 압축되지 않은 크기를 가져옵니다. + Zip 보관 파일에 있는 항목의 압축 해제된 크기입니다. + The value of the property is not available because the entry has been modified. + + + Zip 보관 파일에 있는 항목의 파일 이름을 가져옵니다. + Zip 보관 파일에 있는 항목의 파일 이름입니다. + + + Zip 보관 파일에서 항목을 엽니다. + 항목의 내용을 나타내는 스트림입니다. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Zip 보관 파일에 있는 항목의 상대 경로를 검색합니다. + 항목의 상대 경로로, 속성에 저장된 값입니다. + + + Zip 보관 파일 항목과 상호 작용하기 위한 값을 지정합니다. + + + 새 보관 항목 만들기만 허용됩니다. + + + 보관 항목 읽기만 허용됩니다. + + + 보관 항목에 대해 읽기 및 쓰기 작업 모두가 허용됩니다. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ru/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ru/System.IO.Compression.xml new file mode 100644 index 0000000..39281ce --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/ru/System.IO.Compression.xml @@ -0,0 +1,415 @@ + + + + System.IO.Compression + + + + Определяет значения, указывающие, для какой характеристики оптимизируется сжатие: скорость или размер. + + + Операция сжатия должна завершиться как можно быстрее, даже если результирующий файл не будет сжат оптимально. + + + Файл не требуется сжимать. + + + При операции сжатия должно применяться оптимальное сжатие, даже если это увеличивает длительность ее выполнения. + + + Задает, следует ли сжимать или распаковывать основной поток. + + + Сжимает основной поток. + + + Распаковывает основной поток. + + + Предоставляет методы и свойства для сжатия и распаковки потоков с использованием алгоритма Deflate. + + + Инициализирует новый экземпляр класса с использованием указанного потока и уровня сжатия. + Поток для сжатия. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с помощью указанного потока и уровня сжатия, а также при необходимости оставляет поток открытым. + Поток для сжатия. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Значение true, чтобы оставить объект потока открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с использованием указанного потока и режима сжатия. + Поток, который нужно сжать или распаковать. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Инициализирует новый экземпляр класса с помощью указанного потока и режима сжатия, а также при необходимости оставляет поток открытым. + Поток, который нужно сжать или распаковать. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Возвращает ссылку на основной поток. + Объект потока, представляющий основной поток. + Основной поток закрыт. + + + Возвращает значение, указывающее, поддерживает ли поток чтение во время распаковки файла. + Значение true, если значение равно Decompress, а основной поток открыт и поддерживает чтение; в противном случае — false. + + + Возвращает значение, указывающее, поддерживает ли поток поиск. + Значение false во всех случаях. + + + Возвращает значение, определяющее, поддерживает ли поток операции записи. + Значение true, если значение равно Compress, и основной поток поддерживает запись и не закрыт; в противном случае — false. + + + Освобождает неуправляемые ресурсы, используемые объектом , а при необходимости освобождает также управляемые ресурсы. + Значение true позволяет освободить как управляемые, так и неуправляемые ресурсы; значение false освобождает только неуправляемые ресурсы. + + + Текущая реализация этого метода не функциональна. + Поток закрыт. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Считывает число распакованных байтов в указанный массив байтов. + Число байтов, которые были считаны в массив байтов. + Массив для хранения распакованных байтов. + Смещение в байтах в массиве , в который будут помещены считанные байты. + Максимальное число распакованных байтов для считывания. + Свойство имеет значение null. + При создании объекта значение было равно Compress.-или- Основной поток не поддерживает чтение. + Значение параметра или меньше нуля.-или-Длина массива минус начальная точка индекса меньше чем . + Недопустимый формат данных. + Поток закрыт. + + + Эта операция не поддерживается и всегда вызывает исключение . + Значение типа long. + Расположение в потоке. + Одно из значений . + Для данного потока это свойство не поддерживается. + + + Эта операция не поддерживается и всегда вызывает исключение . + Длина потока. + Для данного потока это свойство не поддерживается. + + + Записывает сжатые байты в основной поток из указанного массива байтов. + Буфер, содержащий данные для сжатия. + Смещение байтов в , из которого будут считываться байты. + Максимальное число байтов для записи. + + + Предоставляет методы и свойства, используемые для сжатия и распаковки потоков. + + + Инициализирует новый экземпляр класса с использованием указанного потока и уровня сжатия. + Поток, в который необходимо записать сжатые данные. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с помощью указанного потока и уровня сжатия, а также при необходимости оставляет поток открытым. + Поток, в который необходимо записать сжатые данные. + Одно из значений перечисления, указывающее, чему отдается приоритет при сжатии потока: скорости или эффективности сжатия. + Значение true, чтобы оставить объект потока открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Поток не поддерживает операции записи, например сжатие.(Свойство в объекте потока имеет значение false). + + + Инициализирует новый экземпляр класса с использованием указанного потока и режима сжатия. + Поток, в который записываются сжатые или распакованные данные. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Свойство имеет значение null. + + не является допустимым значением перечисления .-или- и — false.-или- и — false. + + + Инициализирует новый экземпляр класса с помощью указанного потока и режима сжатия, а также при необходимости оставляет поток открытым. + Поток, в который записываются сжатые или распакованные данные. + Одно из значений перечисления, указывающее, нужно ли выполнить сжатие или распаковку потока. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Свойство имеет значение null. + Параметр не является допустимым значением .-или- и — false.-или- и — false. + + + Возвращает ссылку на основной поток. + Объект потока, представляющий основной поток. + Основной поток закрыт. + + + + + + Возвращает значение, указывающее, поддерживает ли поток чтение во время распаковки файла. + Значение true, если значение равно Decompress,, и основной поток поддерживает чтение и не закрыт; в противном случае — false. + + + + + + Возвращает значение, указывающее, поддерживает ли поток поиск. + Значение false во всех случаях. + + + Возвращает значение, определяющее, поддерживает ли поток операции записи. + Значение true, если значение равно Compress, и основной поток поддерживает запись и не закрыт; в противном случае — false. + + + + + + Освобождает неуправляемые ресурсы, используемые объектом , а при необходимости освобождает также и управляемые ресурсы. + Значение true позволяет освободить как управляемые, так и неуправляемые ресурсы; значение false освобождает только неуправляемые ресурсы. + + + Текущая реализация этого метода не функциональна. + Поток закрыт. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Для данного потока это свойство не поддерживается. + + + + + + Считывает число распакованных байтов в указанный массив байтов. + Число байтов, которые были распакованы в массив байтов.Если достигнут конец потока, возвращаемое значение представляет собой число считанных байтов или же равно нулю. + Массив, используемый для хранения распакованных байтов. + Смещение в байтах в массиве , в который будут помещены считанные байты. + Максимальное число распакованных байтов для считывания. + Свойство имеет значение null. + При создании объекта значение было равно Compress.-или-Основной поток не поддерживает чтение. + Значение параметра или меньше нуля.-или-Длина массива минус начальная точка индекса меньше чем . + Недопустимый формат данных. + Поток закрыт. + + + Это свойство не поддерживается и всегда вызывает исключение . + Значение типа long. + Расположение в потоке. + Одно из значений . + Для данного потока это свойство не поддерживается. + + + Это свойство не поддерживается и всегда вызывает исключение . + Длина потока. + Для данного потока это свойство не поддерживается. + + + Записывает сжатые байты в основной поток из указанного массива байтов. + Буфер, содержащий данные для сжатия. + Смещение байтов в , из которого будут считываться байты. + Максимальное число байтов для записи. + Операция записи не может быть выполнена, поскольку поток закрыт. + + + Представляет пакет сжатых файлов в формате ZIP архива. + + + Инициализирует новый экземпляр класса из заданного потока. + Поток, содержащий архив для чтения. + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + Инициализирует новый экземпляр класса из указанного потока с заданным режимом. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Инициализирует новый экземпляр класса на указанном потоке для заданного режима, а также при необходимости оставляет поток открытым. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Инициализирует новый экземпляр класса на указанном потоке для заданного режима, использует указанную кодировку для кодировку для имен записей, а также, при необходимости, оставляет поток открытым. + Входной или выходной поток. + Одно из значений перечисления, указывающее, для чтения, создания или обновления записей используется ZIP-архив. + Значение true, чтобы оставить поток открытым после удаления объекта ; в противном случае — значение false. + Кодирование, используемое при чтении или записи имен записей в этом архиве.Задайте значение для этого параметра, только если кодирование требуется для взаимодействия с инструментами и библиотеками ZIP-архива, которые не поддерживают кодирование UTF-8 для имен записей. + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + Создает пустую запись, которая имеет указанные путь и имя записи в ZIP архиве. + Пустая запись в ZIP-архиве. + Путь относительно корня архива, который указывает имя создаваемой записи. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Создает пустую запись, которая имеет указанные имя и уровень сжатия ZIP записи в архиве. + Пустая запись в ZIP-архиве. + Путь относительно корня архива, который указывает имя создаваемой записи. + Одно из значений перечисления, указывающее, акцентировать ли внимание на скорости или эффективности сжатия при создании записи. + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + Освобождает ресурсы, используемые текущим экземпляром класса . + + + Вызывается методами и , чтобы освободить неуправляемые ресурсы, используемые текущим экземпляром класса . Дополнительно может заканчивать запись архива и высвобождать управляемые ресурсы. + Значение true — для завершения записи архива и освобождения управляемых и неуправляемых ресурсов; значение false — для освобождения только неуправляемых ресурсов. + + + Получает коллекцию записей, которые находятся в ZIP-архиве в текущий момент. + Коллекция записей, которые находятся в ZIP-архиве в текущий момент. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Извлекает оболочку для заданной записи в ZIP-архиве. + Программа-оболочка для определенной записи в архиве; null — если запись не существует в архиве. + Путь относительно корня архива, который указывает запись для получения. + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + Получает значение, которое описывает тип действий, которые ZIP-архив может выполнять над записями. + Одно из значений перечисления, описывающее тип действия (чтение, создание или обновление), которое ZIP-архив может выполнять над записями. + + + Представляет сжатый файл внутри ZIP-архива. + + + Получает ZIP-архив, к которому принадлежит запись. + ZIP-архив, которому принадлежит запись, или значение null, если запись была удалена. + + + Получает сжатый размер записи в ZIP-архиве. + Сжатый размер записи в ZIP-архиве. + The value of the property is not available because the entry has been modified. + + + Удаляет запись из ZIP-архива. + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + Получает относительный путь записи в ZIP-архиве. + Относительный путь записи в ZIP-архиве. + + + Получает или задает время последнего изменения записи в ZIP-архиве. + Время последнего изменения записи в ZIP-архиве. + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + Получает несжатый размер записи в ZIP-архиве. + Несжатый размер записи в ZIP-архиве. + The value of the property is not available because the entry has been modified. + + + Получает имя файла записи в ZIP-архиве. + Имя файла записи в ZIP-архиве. + + + Открывает запись из ZIP-архива. + Поток, представляющий содержимое записи. + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + Извлекает относительный путь записи в ZIP-архиве. + Относительный путь записи, который является значением, хранящимся в свойстве . + + + Определяет значения для взаимодействия с записями ZIP-архива. + + + Разрешено только создание новых записей архива. + + + Разрешено только чтение записей архива. + + + Операции чтение и запись разрешены для записей архива. + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hans/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hans/System.IO.Compression.xml new file mode 100644 index 0000000..244bf38 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hans/System.IO.Compression.xml @@ -0,0 +1,436 @@ + + + + System.IO.Compression + + + + 指定表明是否压缩操作重点介绍速度或压缩大小的值。 + + + 即使结果文件未可选择性地压缩,压缩操作也应尽快完成。 + + + 该文件不应执行压缩。 + + + 即使操作要用更长的时间来完成,也应该可选性地压缩压缩操作。 + + + 指定是否压缩或解压缩基础流。 + + + 压缩基础流。 + + + 解压缩基础流。 + + + 提供使用 Deflate 算法压缩和解压缩流的方法和属性。 + + + 用指定的流和压缩级别初始化 类的新实例。 + 要压缩的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 使用指定的流和压缩级别,初始化 类的新实例,有选择性的打开流。 + 要压缩的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 用指定的流和压缩模式初始化 类的新实例。 + 要压缩或解压缩的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 使用指定的流和压缩模式,初始化 类的新实例,有选择性的打开流。 + 要压缩或解压缩的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + 如果在释放 对象之后打开流,则为 true;否则为 false。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 获取对基础流的引用。 + 表示基础流的流对象。 + 基础流已关闭。 + + + 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 + 如果 值为 Decompress 而且基础流已打开并支持读取,则为 true;否则为 false。 + + + 获取一个值,该值指示流是否支持查找。 + 在所有情况下均为 false。 + + + 获取一个值,该值指示流是否支持写入。 + 如果 值为 Compress 而且基础流未关闭并支持写入,则为 true;否则为 false。 + + + 释放由 占用的非托管资源,还可以释放托管资源。 + 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。 + + + 此方法的当前实现没有任何功能。 + 流已关闭。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 将若干解压缩的字节读入指定的字节数组。 + 已读入到字节数组中的字节数。 + 用于存储解压缩的字节的数组。 + + 中的字节偏移量,将在此处放置读取的字节。 + 最多要读取的解压缩字节数。 + + 为 null。 + 创建对象时 值是 Compress。- 或 - 基础流不支持读取。 + + 小于零。- 或 - 长度减去索引起始点小于 + 数据的格式无效。 + 流已关闭。 + + + 此操作不受支持,它总是引发 + 一个长值。 + 流中的位置。 + + 值之一。 + 此流中不支持此属性。 + + + 此操作不受支持,它总是引发 + 流的长度。 + 此流中不支持此属性。 + + + 从指定的字节数组中将压缩的字节写入基础流。 + 包含要压缩的数据的缓冲区。 + + 中的字节偏移量,将在此处读取字节。 + 最多写入的字节数。 + + + 提供用于压缩和解压缩流的方法和属性。 + + + 用指定的流和压缩级别初始化 类的新实例。 + 要将压缩数据写入到其中的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 使用指定的流和压缩级别,初始化 类的新实例,有选择性的打开流。 + 要将压缩数据写入到其中的流。 + 压缩流时,指示是否要强调速度或压缩效率的枚举值之一。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + + 为 null。 + 流不支持写入操作,如压缩。(流对象上的 属性是 false。) + + + 用指定的流和压缩模式初始化 类的新实例。 + 压缩或解压缩后的数据被写入的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + + 为 null。 + + 不是有效的 枚举值。- 或 - 为 false。- 或 - 为 false。 + + + 使用指定的流和压缩模式,初始化 类的新实例,有选择性的打开流。 + 压缩或解压缩后的数据被写入的流。 + 指示是要压缩还是解压缩流的枚举值之一。 + 如果在释放 对象之后打开流,则为 true;否则为 false。 + + 为 null。 + + 不是有效的 值。- 或 - 为 false。- 或 - 为 false。 + + + 获取对基础流的引用。 + 表示基础流的流对象。 + 基础流已关闭。 + + + + + + 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 + 如果 值为 Decompress, 而且基础流未关闭并支持读取,则为 true;否则为 false。 + + + + + + 获取一个值,该值指示流是否支持查找。 + 在所有情况下均为 false。 + + + 获取一个值,该值指示流是否支持写入。 + 如果 值为 Compress 而且基础流未关闭并支持写入,则为 true;否则为 false。 + + + + + + 释放由 占用的非托管资源,还可以释放托管资源。 + 若要释放托管资源和非托管资源,则为 true;若仅释放非托管资源,则为 false。 + + + 此方法的当前实现没有任何功能。 + 流已关闭。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 此属性不受支持,并且总是引发 + 一个长值。 + 此流中不支持此属性。 + + + + + + 将若干解压缩的字节读入指定的字节数组。 + 解压缩到字节数组中的字节数。如果已到达流的末尾,则返回 0 或已读取的字节数。 + 用于存储解压缩字节的数组。 + + 中的字节偏移量,将在此处放置读取的字节。 + 最多要读取的解压缩字节数。 + + 为 null。 + 创建对象时 值是 Compress。- 或 -基础流不支持读取。 + + 小于零。- 或 - 长度减去索引起始点小于 + 数据的格式无效。 + 流已关闭。 + + + 此属性不受支持,并且总是引发 + 一个长值。 + 流中的位置。 + + 值之一。 + 此流中不支持此属性。 + + + 此属性不受支持,并且总是引发 + 流的长度。 + 此流中不支持此属性。 + + + 从指定的字节数组中将压缩的字节写入基础流。 + 包含要压缩的数据的缓冲区。 + + 中的字节偏移量,将在此处读取字节。 + 最多写入的字节数。 + 由于流已关闭,因此无法执行写入操作。 + + + 表示 Zip 存档格式中的一个压缩文件包。 + + + 从指定流初始化 类的新实例。 + 即包含待读取的存档的流。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 在指定的模式下,从指定的流初始化 类的新实例。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 对于指定的模式,初始化指定流上的 类的新实例,并有选择性地使流保持打开状态。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 对于指定的模式,初始化指定流上的 类的新实例,使用项名的指定编码,并有择性地使流保持打开状态。 + 输入流或输出流。 + 指示 zip 存档是否用于读取、创建或更新项的一个枚举值。 + 如果在释放 对象之后打开流对象,则为 true;否则为 false。 + 在存档中读取或写入项名时使用的编码。仅当需要针对具有不支持项名的 UTF-8 编码的 zip 归档工具和库的互操作性进行编码时,为此参数指定一个值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 创建在 zip 存档中有指定路径和项名的空项。 + 在 zip 存档中的空项。 + 相对于存档的根的路径指定了要创建项的名称。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 创建在 zip 存档中有指定项名和压缩级别的空项。 + 在 zip 存档中的空项。 + 相对于存档的根的路径指定了要创建项的名称。 + 指示创建项时是否强调速度或压缩有效性的枚举值之一。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 释放 类的当前实例使用的资源。 + + + 方法调用,以释放 类的当前实例使用的未托管资源,并有选择性地完成编写存档以及释放托管资源。 + true 则完成编写存档并释放未托管和托管资源;false 则仅释放未托管资源。 + + + 获取 zip 存档中当前存在的项的集合。 + 在 zip 存档中当前存在的项的集合。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 在 zip 存档中检索指定项的包装。 + 存档中指定项的包装器;如果存档中不存在此项目则为 null。 + 识别要检索的项、相对于存档的根的路径。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 获取描述 zip 存档可在项上执行的操作类型的一个值。 + 描述 zip 存档可在项上执行的操作类型(读取、创建或更新)的一个枚举值。 + + + 表示 zip 档案中的压缩文件。 + + + 获取该项所属的 zip 存档。 + 项所属的 zip 存档,或如果已删除项,则为 null。 + + + 获取在 zip 存档中的项的压缩大小。 + 在 zip 存档中的项的压缩大小。 + The value of the property is not available because the entry has been modified. + + + 删除 zip 存档中的项。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + 获取 zip 存档中的项的相对路径。 + 在 zip 存档中的项的相对路径。 + + + 获取或设置最近一次更改 zip 存档中的项的时间。 + 最近一次更改 zip 存档中的项的时间。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + 获取 zip 存档中的项的未压缩大小。 + 在 zip 存档中的项的未压缩大小。 + The value of the property is not available because the entry has been modified. + + + 获取在 zip 存档中的项的文件名。 + 在 zip 存档中的项的文件名。 + + + 打开 zip 存档中的项。 + 表示项的内容的流。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + 检索 zip 存档中项的相对路径。 + 项的相对路径,即存储在 属性中的值。 + + + 指定与 zip 存档项互交的值。 + + + 只允许创建新存档项。 + + + 只允许读取存档项。 + + + 存档项允许读取和写入操作。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hant/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hant/System.IO.Compression.xml new file mode 100644 index 0000000..996a714 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netstandard1.3/zh-hant/System.IO.Compression.xml @@ -0,0 +1,432 @@ + + + + System.IO.Compression + + + + 指定值,這個值表示壓縮作業會強調速度還是壓縮大小。 + + + 即使不能有效壓縮所產生的檔案,應該儘速完成壓縮作業。 + + + 不應該對檔案執行壓縮。 + + + 壓縮作業應該會進行最佳化壓縮,即使該作業耗費更長的時間才能完成。 + + + 指定是要壓縮還是要解壓縮基礎資料流。 + + + 壓縮基礎資料流。 + + + 解壓縮基礎資料流。 + + + 提供方法和屬性,以透過 Deflate 演算法來壓縮和解壓縮資料流。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體。 + 要壓縮的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要壓縮的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + true 表示在處置 物件之後,將資料流物件保持開啟;否則為 false。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體。 + 要壓縮或解壓縮的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要壓縮或解壓縮的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + true 表示在處置 物件之後,將資料流保持開啟;否則為 false。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 取得基礎資料流的參考。 + 資料流物件,表示基礎資料流。 + 已關閉基礎資料流。 + + + 取得值,指出在解壓縮檔案時,資料流是否支援讀取。 + 如果 值為 Decompress,且基礎資料流處於開啟狀態並支援讀取,則為 true;否則為 false。 + + + 取得值,指出資料流是否支援搜尋。 + 所有情況下都是 false。 + + + 取得值,指出資料流是否支援寫入。 + 如果 值為 Compress,並且基礎資料流支援寫入,且不處於關閉狀態,則為 true;否則為 false。 + + + 釋放 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 + true 表示釋放 Managed 和 Unmanaged 資源,false 則表示只釋放 Unmanaged 資源。 + + + 這個方法目前的實作沒有任何功能。 + 已關閉資料流。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 將大量解壓縮的位元組讀入指定的位元組陣列。 + 已讀入至位元組陣列的位元組數。 + 用於儲存解壓縮位元組的陣列。 + 要在其中放置讀取位元組之 的位元組位移。 + 要讀取的最大解壓縮位元組數。 + + 為 null。 + 建立物件時, 的值為 Compress。-或- 基礎資料流不支援讀取。 + + 小於零。-或- 長度減去索引起點小於 + 資料的格式無效。 + 已關閉資料流。 + + + 這個作業不受支援,而且一律會擲回 + 長整數值。 + 在資料流中的位置。 + 其中一個 值。 + 這個資料流不支援這個屬性。 + + + 這個作業不受支援,而且一律會擲回 + 資料流的長度。 + 這個資料流不支援這個屬性。 + + + 從指定的位元組陣列將壓縮的位元組寫入基礎資料流。 + 包含要壓縮之資料的緩衝區。 + + 中的位元組位移,即讀取位元組的來源位置。 + 寫入的最大位元組數。 + + + 提供用於壓縮和解壓縮資料流的方法和屬性。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體。 + 要寫入壓縮資料的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮層級,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 要寫入壓縮資料的資料流。 + 其中一個列舉值,指出當壓縮資料流時是否要強調速度或壓縮的效益。 + true 表示在處置 物件之後,將資料流物件保持開啟;否則為 false。 + + 為 null。 + 資料流不支援寫入作業,例如壓縮。(資料流物件上的 屬性是false)。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體。 + 寫入壓縮或解壓縮資料的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + + 為 null。 + + 不是有效的 列舉值。-或-,而 是 false。-或-,而 是 false。 + + + 使用指定的資料流和壓縮模式,初始化 類別的新執行個體,並選擇性地保持開啟資料流。 + 寫入壓縮或解壓縮資料的資料流。 + 其中一個列舉值,表示要壓縮還是解壓縮資料流。 + true 表示在處置 物件之後,將資料流保持開啟;否則為 false。 + + 為 null。 + + 不是有效的 值。-或-,而 是 false。-或-,而 是 false。 + + + 取得基礎資料流的參考。 + 資料流物件,表示基礎資料流。 + 已關閉基礎資料流。 + + + + + + 取得值,指出在解壓縮檔案時,資料流是否支援讀取。 + 如果 值為 Decompress,,並且基礎資料流支援讀取,且不處於關閉狀態,則為 true;否則為 false。 + + + + + + 取得值,指出資料流是否支援搜尋。 + 所有情況下都是 false。 + + + 取得值,指出資料流是否支援寫入。 + 如果 值為 Compress,並且基礎資料流支援寫入,且不處於關閉狀態,則為 true;否則為 false。 + + + + + + 釋放 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 + true 表示釋放 Managed 和 Unmanaged 資源,false 則表示只釋放 Unmanaged 資源。 + + + 這個方法目前的實作沒有任何功能。 + 已關閉資料流。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 這個資料流不支援這個屬性。 + + + + + + 將大量解壓縮的位元組讀入指定的位元組陣列。 + 解壓縮至位元組陣列的位元組數。如果已達到資料流的結尾,則會傳回零或位元組數。 + 用於儲存解壓縮位元組的陣列。 + 要在其中放置讀取位元組之 的位元組位移。 + 要讀取的最大解壓縮位元組數。 + + 為 null。 + 建立物件時, 的值為 Compress。-或-基礎資料流不支援讀取。 + + 小於零。-或- 長度減去索引起點小於 + 資料的格式無效。 + 已關閉資料流。 + + + 這個屬性不受支援,而且一律會擲回 + 長整數值。 + 在資料流中的位置。 + 其中一個 值。 + 這個資料流不支援這個屬性。 + + + 這個屬性不受支援,而且一律會擲回 + 資料流的長度。 + 這個資料流不支援這個屬性。 + + + 從指定的位元組陣列將壓縮的位元組寫入基礎資料流。 + 包含要壓縮之資料的緩衝區。 + + 中的位元組位移,即讀取位元組的來源位置。 + 寫入的最大位元組數。 + 無法執行寫入作業,因為資料流已關閉。 + + + 代表 zip 封存格式的壓縮檔封裝。 + + + 從指定的資料流,初始化 類別的新執行個體。 + 包含要讀取之封存的資料流。 + The stream is already closed or does not support reading. + + is null. + The contents of the stream are not in the zip archive format. + + + 使用指定的模式,從指定的資料流初始化 類別的新執行個體。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在指定之模式的指定資料流上,初始化 類別的新執行個體,並選擇性地保留資料流開啟狀態。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + true 表示在處置 物件之後,將資料流保持開啟,否則為 false。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在指定模式的指定資料流上,初始化 類別的新執行個體,使用項目名稱的指定編碼方式,並選擇性地保留資料流開啟狀態。 + 輸入或輸出資料流。 + 其中一個列舉值,指出是否使用 zip 封存讀取、建立或更新項目。 + true 表示在處置 物件之後,將資料流保持開啟,否則為 false。 + 在此封存中讀取或寫入項目名稱時要使用的編碼方式。只有需要編碼以與 Zip 封存工具和程式庫互通,且這類工具和程式庫不支援項目名稱使用 UTF-8 編碼時,才指定此參數的值。 + The stream is already closed, or the capabilities of the stream do not match the mode. + + is null. + + is an invalid value. + The contents of the stream could not be interpreted as a zip archive.-or- is and an entry is missing from the archive or is corrupt and cannot be read.-or- is and an entry is too large to fit into memory. + + + 在 zip 封存中建立具有指定之路徑和項目名稱的空項目。 + Zip 封存中的空項目。 + 指定要建立之項目名稱的路徑 (相對於封存的根目錄)。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 在 zip 封存中建立具有指定之項目名稱和壓縮等級的空項目。 + Zip 封存中的空項目。 + 指定要建立之項目名稱的路徑 (相對於封存的根目錄)。 + 其中一個列舉值,指出建立項目時是否要強調速度或壓縮的效益。 + + is . + + is null. + The zip archive does not support writing. + The zip archive has been disposed. + + + 類別目前的執行個體所使用的資源釋出。 + + + 方法呼叫以釋放 類別之目前執行個體所使用的 Unmanaged 資源,並選擇性完成封存的寫入以及釋放 Managed 資源。 + true 表示完成寫入封存並釋放 Managed 和 Unmanaged 資源,false 表示只釋放 Unmanaged 資源。 + + + 取得目前 zip 封存中所包含項目的集合。 + 目前 zip 封存中所包含項目的集合。 + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 在 zip 封存中擷取指定項目的包裝函式。 + 封存中指定項目的包裝函式,如果項目不存在於封存中則為 null。 + 識別要擷取之項目的路徑 (相對於封存的根目錄)。 + + is . + + is null. + The zip archive does not support reading. + The zip archive has been disposed. + The zip archive is corrupt, and its entries cannot be retrieved. + + + 取得值,描述 zip 封存可以在項目上執行的動作類型。 + 其中一個列舉值,其描述 zip 封存可以在項目上執行的動作類型 (讀取、建立或更新)。 + + + 表示 zip 封存中的壓縮檔。 + + + 取得項目所屬的 zip 封存。 + 項目所屬的 Zip 封存,如果已刪除項目,則為 null。 + + + 取得 Zip 封存中的項目壓縮大小。 + Zip 封存中項目的壓縮大小。 + The value of the property is not available because the entry has been modified. + + + 從 zip 封存中刪除項目。 + The entry is already open for reading or writing. + The zip archive for this entry was opened in a mode other than . + The zip archive for this entry has been disposed. + + + 取得 Zip 封存中的項目相對路徑。 + Zip 封存中的項目相對路徑。 + + + 取得或設定上次變更 zip 封存中之項目的時間。 + 上次變更 zip 封存中之項目的時間。 + The attempt to set this property failed, because the zip archive for the entry is in mode. + The archive mode is set to .- or -The archive mode is set to and the entry has been opened. + An attempt was made to set this property to a value that is either earlier than 1980 January 1 0:00:00 (midnight) or later than 2107 December 31 23:59:58 (one second before midnight). + + + 取得 Zip 封存中的項目未壓縮大小。 + Zip 封存中的項目未壓縮大小。 + The value of the property is not available because the entry has been modified. + + + 取得 Zip 封存中的項目檔名。 + Zip 封存中的項目檔名。 + + + 從 zip 封存中開啟項目。 + 代表此項目內容的資料流。 + The entry is already currently open for writing.-or-The entry has been deleted from the archive.-or-The archive for this entry was opened with the mode, and this entry has already been written to. + The entry is either missing from the archive or is corrupt and cannot be read. -or-The entry has been compressed by using a compression method that is not supported. + The zip archive for this entry has been disposed. + + + 擷取 Zip 封存中項目的相對路徑。 + 項目的相對路徑,其為儲存在 屬性中的值。 + + + 指定與 zip 封存項目互動的值。 + + + 僅允許建立新的封存項目。 + + + 僅允許讀取封存項目。 + + + 封存項目允許讀取及寫入作業。 + + + \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/ref/portable-net45+win8+wpa81/_._ b/packages/System.IO.Compression.4.3.0/ref/portable-net45+win8+wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/win8/_._ b/packages/System.IO.Compression.4.3.0/ref/win8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/wpa81/_._ b/packages/System.IO.Compression.4.3.0/ref/wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/xamarinios10/_._ b/packages/System.IO.Compression.4.3.0/ref/xamarinios10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/xamarinmac20/_._ b/packages/System.IO.Compression.4.3.0/ref/xamarinmac20/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/xamarintvos10/_._ b/packages/System.IO.Compression.4.3.0/ref/xamarintvos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/xamarinwatchos10/_._ b/packages/System.IO.Compression.4.3.0/ref/xamarinwatchos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll b/packages/System.IO.Compression.4.3.0/runtimes/unix/lib/netstandard1.3/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..004f3bc25a96c11982c0c5288511372b324f066e GIT binary patch literal 117624 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 literal 0 HcmV?d00001 diff --git a/packages/System.IO.Compression.4.3.0/runtimes/win/lib/netstandard1.3/System.IO.Compression.dll b/packages/System.IO.Compression.4.3.0/runtimes/win/lib/netstandard1.3/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..4ed0af9b103408217677de410549c3c0eee5e25d GIT binary patch literal 125296 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 DIfXaZ literal 0 HcmV?d00001

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 literal 0 HcmV?d00001 diff --git a/packages/System.IO.Compression.4.3.0/ThirdPartyNotices.txt b/packages/System.IO.Compression.4.3.0/ThirdPartyNotices.txt new file mode 100644 index 0000000..55cfb20 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ThirdPartyNotices.txt @@ -0,0 +1,31 @@ +This Microsoft .NET Library may incorporate components from the projects listed +below. Microsoft licenses these components under the Microsoft .NET Library +software license terms. The original copyright notices and the licenses under +which Microsoft received such components are set forth below for informational +purposes only. Microsoft reserves all rights not expressly granted herein, +whether by implication, estoppel or otherwise. + +1. .NET Core (https://github.com/dotnet/core/) + +.NET Core +Copyright (c) .NET Foundation and Contributors + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/packages/System.IO.Compression.4.3.0/dotnet_library_license.txt b/packages/System.IO.Compression.4.3.0/dotnet_library_license.txt new file mode 100644 index 0000000..92b6c44 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/dotnet_library_license.txt @@ -0,0 +1,128 @@ + +MICROSOFT SOFTWARE LICENSE TERMS + + +MICROSOFT .NET LIBRARY + +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft + +· updates, + +· supplements, + +· Internet-based services, and + +· support services + +for this software, unless other terms accompany those items. If so, those terms apply. + +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. + + +IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW. + +1. INSTALLATION AND USE RIGHTS. + +a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs. + +b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only. + +2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. + +a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below. + +i. Right to Use and Distribute. + +· You may copy and distribute the object code form of the software. + +· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. + +ii. Distribution Requirements. For any Distributable Code you distribute, you must + +· add significant primary functionality to it in your programs; + +· require distributors and external end users to agree to terms that protect it at least as much as this agreement; + +· display your valid copyright notice on your programs; and + +· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs. + +iii. Distribution Restrictions. You may not + +· alter any copyright, trademark or patent notice in the Distributable Code; + +· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft; + +· include Distributable Code in malicious, deceptive or unlawful programs; or + +· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that + +· the code be disclosed or distributed in source code form; or + +· others have the right to modify it. + +3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not + +· work around any technical limitations in the software; + +· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; + +· publish the software for others to copy; + +· rent, lease or lend the software; + +· transfer the software or this agreement to any third party; or + +· use the software for commercial software hosting services. + +4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. + +5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. + +6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. + +7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it. + +8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. + +9. APPLICABLE LAW. + +a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. + +b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. + +10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. + +11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. + +FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS. + +12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. + +This limitation applies to + +· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and + +· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. + +It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. + +Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. + +Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. + +EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues. + +LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. + +Cette limitation concerne : + +· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et + +· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur. + +Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard. + +EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. + + diff --git a/packages/System.IO.Compression.4.3.0/lib/MonoAndroid10/_._ b/packages/System.IO.Compression.4.3.0/lib/MonoAndroid10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/MonoTouch10/_._ b/packages/System.IO.Compression.4.3.0/lib/MonoTouch10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/net45/_._ b/packages/System.IO.Compression.4.3.0/lib/net45/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/net46/System.IO.Compression.dll b/packages/System.IO.Compression.4.3.0/lib/net46/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..f8468a652440be5ecce5ee80442d8a5e66c99d37 GIT binary patch literal 111984 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 literal 0 HcmV?d00001 diff --git a/packages/System.IO.Compression.4.3.0/lib/portable-net45+win8+wpa81/_._ b/packages/System.IO.Compression.4.3.0/lib/portable-net45+win8+wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/win8/_._ b/packages/System.IO.Compression.4.3.0/lib/win8/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/wpa81/_._ b/packages/System.IO.Compression.4.3.0/lib/wpa81/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/xamarinios10/_._ b/packages/System.IO.Compression.4.3.0/lib/xamarinios10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/xamarinmac20/_._ b/packages/System.IO.Compression.4.3.0/lib/xamarinmac20/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/xamarintvos10/_._ b/packages/System.IO.Compression.4.3.0/lib/xamarintvos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/lib/xamarinwatchos10/_._ b/packages/System.IO.Compression.4.3.0/lib/xamarinwatchos10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/MonoAndroid10/_._ b/packages/System.IO.Compression.4.3.0/ref/MonoAndroid10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/MonoTouch10/_._ b/packages/System.IO.Compression.4.3.0/ref/MonoTouch10/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/net45/_._ b/packages/System.IO.Compression.4.3.0/ref/net45/_._ new file mode 100644 index 0000000..e69de29 diff --git a/packages/System.IO.Compression.4.3.0/ref/net46/System.IO.Compression.dll b/packages/System.IO.Compression.4.3.0/ref/net46/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..f8468a652440be5ecce5ee80442d8a5e66c99d37 GIT binary patch literal 111984 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 literal 0 HcmV?d00001 diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/System.IO.Compression.dll b/packages/System.IO.Compression.4.3.0/ref/netcore50/System.IO.Compression.dll new file mode 100644 index 0000000000000000000000000000000000000000..6de132f297f72fad498bf5e0e0a16ecb07ae53c1 GIT binary patch literal 24280 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 Drw(WN literal 0 HcmV?d00001 diff --git a/packages/System.IO.Compression.4.3.0/ref/netcore50/System.IO.Compression.xml b/packages/System.IO.Compression.4.3.0/ref/netcore50/System.IO.Compression.xml new file mode 100644 index 0000000..a7c74c9 --- /dev/null +++ b/packages/System.IO.Compression.4.3.0/ref/netcore50/System.IO.Compression.xml @@ -0,0 +1,430 @@ + + + + System.IO.Compression + + + +

#7tObA-T4a8t8C=zg5Or}Jq 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�I;N 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 z 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