概要

状況によっては、アーカイブからファイルを選択的に削除する必要があります。削除は、マスクまたはその他の基準に基づいて実行できます。
Aspose.ZIP は、いくつかの形式からの選択的な削除をサポートしています。

Python ZIP アーカイブからファイルを削除

delete_entry メソッドは、ZIP アーカイブからエントリ全体を削除するために使用されます。この操作は独立しているため、アーカイブ全体を再処理する必要はありません。
ZIP アーカイブのエントリは、 DeleteEntry のメソッドのペアを使用して削除できます。エントリの削除は再パックされずに行われるため、他のエントリは解凍および再圧縮されずに変更されないままになります。

    with zp.Archive("archive.zip") as archive:
        while len(archive.entries) > 1:
            archive.delete_entry(archive.entries[0])
        archive.save("last_entry.zip")

このコードは、既存の ZIP アーカイブ「archive.zip」を処理します。最後のエントリを除くすべてのエントリを連続して削除し、残りのファイルのみを含む「last_entry.zip」という名前の新しいアーカイブを事実上作成します。

TAR からファイルを削除

delete_entry メソッドは、TAR アーカイブからエントリを削除する場合にも効果的です。このプロセスは独立して動作するため、アーカイブ全体を再処理する必要がありません。以下の例に示すように、TAR ファイルの delete_entry メソッドを使用すると、エントリをシームレスに削除でき、残りのエントリは影響を受けず、解凍や再圧縮も行われません。

    with zp.tar.TarArchive("two_files.tar") as archive:
        archive.delete_entry(0)
        archive.save("single_file.tar")

圧縮された tar (*.tar.gz) からエントリを削除したい場合は、それをプレーンな *.tar に解凍する必要があります。

CPIO アーカイブからファイルを削除

エントリは、TAR と同様に CPIO から削除できます。

    with zp.cpio.CpioArchive("two_files.cpio") as archive:
        archive.delete_entry(archive.entries[0]).save("single_file.cpio")

delete_entry メソッドはアーカイブ インスタンスを返すことに注意してください。これにより、場合によってはコードをよりコンパクトにすることができます。

XAR ファイルから削除

Xar アーカイブには単一エントリ削除メソッド delete_entry もあります。
このサンプルでは、​​最後のエントリを除くすべてのエントリが削除されます。

    with zp.xar.XarArchive("archive.xar") as archive:
        while len(archive.entries) > 1:
            archive.delete_entry(0)
        archive.save("last.xar")

この例では分離処理を紹介します。つまり、残りのエントリの圧縮状態に影響を与えずにアーカイブを変更します。このコードは、エントリが 1 つだけ残るまで、「archive.xar」から繰り返し削除します。最後に、結果のアーカイブは「last.xar」として保存されます。

サポートされているその他の Aspose.ZIP for Python.Net API 機能

Python.Net の Aspose.ZIP ライブラリを使用すると、ZIP ファイル ドキュメントに関連するさまざまなタスクをシームレスに処理できます。形式の変換、ファイルの結合、コンテンツの編集、またはデータの抽出が必要な場合でも、Aspose.ZIP はワークフローを合理化し、生産性を向上させるための包括的な機能を提供します。

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: