.NET でのフォルダーの ZIP 化と解凍
Contents
[
Hide
Show
]Aspose.ZIP API を使用すると、基礎となるファイル構造を気にせずにファイルを圧縮および解凍できます。この記事では、単一ファイル圧縮と複数ファイル圧縮の操作について説明します。
ディレクトリを圧縮しています
ディレクトリ内容の圧縮
手順: C# を使用してディレクトリの内容を ZIP ファイルに圧縮する
- 圧縮するファイルを含むディレクトリを定義します。
- FileMode.Create を使用して、出力 ZIP ファイル用の 2 つのファイル ストリームを開きます。
- Archive クラスのインスタンスを作成します。
- CreateEntries メソッドを使用して、指定したディレクトリのすべてのファイルとフォルダをアーカイブに追加します。
- Save メソッドを使用して、圧縮されたディレクトリの内容を複数の ZIP ファイルに保存します。
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 string dataDir = RunExamples.GetDataDir_Data();
3
4 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Create))
5 {
6 using (FileStream zipFile2 = File.Open(dataDir + "CompressDirectory2_out.zip", FileMode.Create))
7 {
8 using (Archive archive = new Archive())
9 {
10 DirectoryInfo corpus = new DirectoryInfo(dataDir + "CanterburyCorpus");
11 archive.CreateEntries(corpus);
12 archive.Save(zipFile);
13 archive.Save(zipFile2);
14 }
15 }
16 }
圧縮されたディレクトリ アーカイブの抽出
- FileMode.Open を使用して ZIP ファイル ストリームを開きます。
- ZIP ファイル ストリームを渡して、Archive クラスのインスタンスを作成します。
- ExtractToDirectory を使用して、圧縮アーカイブの内容を指定したディレクトリに抽出します。
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Open))
3 {
4 using (var archive = new Archive(zipFile))
5 {
6 archive.ExtractToDirectory(dataDir + "DecompressFolder_out");
7 }
8 }
ファイル情報に基づいてファイルを圧縮
- FileMode.Create を使用して、出力 ZIP ファイルのファイル ストリームを開きます。
- 圧縮するファイルの FileInfo オブジェクトを作成します。
- Archive クラスのインスタンスを作成します。
- CreateEntry メソッドを使用して、各ファイルをアーカイブに追加します。
- Save メソッドを使用して、エンコーディングの設定などのオプションの保存オプションを使用してアーカイブを保存します。
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressFilesByFileInfo_out.zip", FileMode.Create))
3 {
4 FileInfo fi1 = new FileInfo(dataDir + "alice29.txt");
5 FileInfo fi2 = new FileInfo(dataDir + "fields.c");
6
7 using (var archive = new Archive())
8 {
9 archive.CreateEntry("alice29.txt", fi1);
10 archive.CreateEntry("fields.c", fi2);
11 archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
12 }
13 }
異なるエントリ アーカイブを使用してアーカイブを抽出する
手順: 異なるエントリを使用してアーカイブを抽出するパスワード
- FileMode.Open を使用して ZIP ファイル ストリームを開きます。
- ZIP ファイル ストリームを渡して、Archive クラスのインスタンスを作成します。
- アーカイブから最初のエントリを抽出し、Extract メソッドを使用してそのエントリに特定のパスワードを指定します。
- 別のパスワードを使用して 2 番目のエントリを抽出し、別の出力ファイルに保存します。
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "\\different_password.zip", FileMode.Open))
3 {
4 using (Archive archive = new Archive(zipFile))
5 {
6 archive.Entries[0].Extract(dataDir + "alice29_extracted_pass_out.txt", "first_pass");
7 archive.Entries[1].Extract(dataDir + "asyoulik_extracted_pass_out.txt", "second_pass");
8 }
9 }