概要
エントリで構成されるアーカイブには、フォルダー全体を圧縮するための createEntries メソッドがあります。このようなメソッドはディレクトリ構造を尊重し、すべてのサブフォルダーに対して再帰的に構成します。また、単一のファイル エントリをアーカイブの任意のサブフォルダーに追加することもできます。フォルダーを圧縮する方法
構造を維持しながらフォルダー全体から ZIP アーカイブを作成する場合は、Java 用の Aspose.Zip API と次のコードを使用できます。 try-with-resources 構造は、すべてのファイルが適切に閉じられているかどうかに関係なく、すべてのコードが実行された後にアーカイブ リソースを自動的に閉じます。 File corpus オブジェクトで指定されたパスは、圧縮されるフォルダーを示します。 createEntries を使用すると、アーカイブの各要素が個別に追加されるため、archive.zip というファイルに保存されている元の構造が維持されます。このコードでは、「D:\Data」フォルダーの存在やその中のファイルの存在はチェックされないことに注意することが重要です。ディレクトリが存在しないか空の場合、コードはアーカイブを作成しません。
CreateEntries
メソッドにはオプションの 2 番目のパラメータ includeRootDirectory があります。ルート ディレクトリをアーカイブに含める必要があるかどうかを示します。デフォルトは true なので、上記のサンプルでは、すべてのアーカイブ エントリが「Data」フォルダー内に配置されます。ディレクトリの内容のみを追加したい場合は、そこに false を渡します。
サンプル - フォルダーからアーカイブを作成します。
try (Archive archive = new Archive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.zip");
}
次のコード例では、「image.bmp」と「lyrics.txt」の 2 つのファイルを含む ZIP アーカイブを作成します。 fi1 変数と fi2 変数はこれらのファイルを表します。アーカイブ オブジェクトの createEntry メソッドを使用して、指定されたパス (「image.bmp」の場合は「data\pictures」、「lyrics.txt」の場合は「data\text」) を持つアーカイブに各ファイルを追加します。要約すると、このコードは、「data\pictures」と「data\text」という 2 つのフォルダーを含む「archive.zip」という名前の ZIP アーカイブを作成し、それぞれにそれぞれのファイルが 1 つ含まれます。
try (Archive archive = new Archive()) {
File fi1 = new File("image.bmp");
File fi2 = new File("lyrics.txt");
archive.createEntry("data\\pictures\\photo.bmp", fi1);
archive.createEntry("data\\text\\song.txt", fi2);
archive.save("archive.zip");
}
構造を尊重して7-ZIPでフォルダーを圧縮する方法
次のコードは、7Z アーカイブを作成し、指定されたディレクトリのすべてのファイルとフォルダーをそこに追加する方法を示しています。 ZIP ファイル形式のアーカイブと同様に機能します。 CreateEntries は、7Z アーカイブのアナログ方法です。 includeRootDirectory パラメータもあります。 重要: Aspose.ZIP for Java 24.4 で実装されます。
try (SevenZipArchive archive = new SevenZipArchive()) {
File corpus = new File("D:\\Data");
archive.createEntries(corpus);
archive.save("archive.7z");
}
TAR でフォルダーの構造を維持しながら圧縮する方法
このコードは、指定されたディレクトリの TAR アーカイブを作成します。これを実現するために、Java Archive API の TarArchive クラスを利用します。
createEntries
メソッドは、ディレクトリのすべてのファイルとフォルダーをアーカイブに追加します。ディレクトリ構造を維持します。最後に、save メソッドはアーカイブの内容をファイル「archive.tar」に書き込みます。
サンプル:
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.save("archive.tar");
}
提供されたコードは、2 つのエントリを含む「archive.tar」という名前の TAR アーカイブを作成します。ディレクトリ アーカイブ - ディレクトリ “D:\Data” のすべてのファイルとフォルダをアーカイブに追加し、ディレクトリ構造を維持します。これにより、指定されたディレクトリの内容全体が効果的にアーカイブされます。単一ファイル エントリ - 「内部」サブフォルダーから「data.bin」という名前の特定のファイルをアーカイブに追加します。これにより、ディレクトリ構造全体をアーカイブせずに特定のファイルを含めることができます。要約すると、このコードは、ディレクトリ レベルのアーカイブと個別のファイルの組み込みの両方を組み合わせた TAR アーカイブを作成します。
サンプル 2 – アーカイブ ディレクトリと
単一ファイル
try (TarArchive archive = new TarArchive()) {
archive.createEntries("D:\\Data");
archive.createEntry("inner\\data.bin", "data.bin");
archive.save("archive.tar");
}
サポートされているその他の Aspose.ZIP for Java API 機能
Java の Aspose.ZIP ライブラリを使用すると、ZIP ファイル ドキュメントに関連するさまざまなタスクをシームレスに処理できます。形式の変換、ファイルの結合、コンテンツの編集、またはデータの抽出が必要な場合でも、Aspose.ZIP はワークフローを合理化し、生産性を向上させるための包括的な機能を提供します。
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for Java?
- Customers List
- Success Stories