Class SevenZipArchive

Class SevenZipArchive

Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)

このクラスは7zアーカイブファイルを表します。これを使用して7zアーカイブを作成および抽出します。

public class SevenZipArchive : IArchive, IDisposable

継承

objectSevenZipArchive

実装

IArchive, IDisposable

継承メンバー

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

コンストラクター

SevenZipArchive(SevenZipEntrySettings)

Aspose.Zip.SevenZip.SevenZipArchiveクラスの新しいインスタンスを、エントリのオプション設定で初期化します。

public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)

パラメーター

newEntrySettings SevenZipEntrySettings

新しく追加されたAspose.Zip.SevenZip.SevenZipArchiveEntryアイテムに使用される圧縮および暗号化設定。 指定されていない場合は、暗号化なしのLZMA圧縮が使用されます。

以下の例は、デフォルト設定である暗号化なしのLZMA圧縮を使用して、単一ファイルを圧縮する方法を示しています。

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

SevenZipArchive(Stream, string)

Aspose.Zip.SevenZip.SevenZipArchiveクラスの新しいインスタンスを初期化し、アーカイブから抽出できるエントリリストを構成します。

public SevenZipArchive(Stream sourceStream, string password = null)

パラメーター

sourceStream Stream

アーカイブのソース。

password string

復号化のためのオプションのパスワード。ファイル名が暗号化されている場合は、必ず存在する必要があります。

using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
    archive.ExtractToDirectory("C:\\extracted");
}

備考

このコンストラクターは、エントリを解凍しません。解凍するには、Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String)メソッドを参照してください。

例外

ArgumentException

sourceStreamはシーク可能ではありません。

ArgumentNullException

sourceStreamはnullです。

NotImplementedException

アーカイブには複数のコーダーが含まれています。現在はLZMA圧縮のみがサポートされています。

SevenZipArchive(string, string)

Aspose.Zip.SevenZip.SevenZipArchiveクラスの新しいインスタンスを初期化し、アーカイブから抽出できるエントリリストを構成します。

public SevenZipArchive(string path, string password = null)

パラメーター

path string

アーカイブファイルへの完全修飾パスまたは相対パス。

password string

復号化のためのオプションのパスワード。ファイル名が暗号化されている場合は、必ず存在する必要があります。

using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
    archive.ExtractToDirectory("C:\\extracted");
}

備考

このコンストラクターは、エントリを解凍しません。解凍するには、Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String)メソッドを参照してください。

例外

ArgumentNullException

pathはnullです。

SecurityException

呼び出し元は、アクセスするために必要な権限を持っていません。

ArgumentException

pathは空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルpathへのアクセスが拒否されました。

PathTooLongException

指定されたpath、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。

NotSupportedException

pathに文字列の中にコロン(:)が含まれています。

FileNotFoundException

ファイルが見つかりません。

DirectoryNotFoundException

指定されたパスが無効です(例えば、マッピングされていないドライブ上にある場合など)。

IOException

ファイルはすでに開かれています。

SevenZipArchive(string[], string)

マルチボリューム7zアーカイブからAspose.Zip.SevenZip.SevenZipArchiveクラスの新しいインスタンスを初期化し、アーカイブから抽出できるエントリリストを構成します。

public SevenZipArchive(string[] parts, string password = null)

パラメーター

parts string[]

順序を尊重してマルチボリューム7zアーカイブの各セグメントへのパス。

password string

復号化のためのオプションのパスワード。ファイル名が暗号化されている場合は、必ず存在する必要があります。

using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
    archive.ExtractToDirectory("C:\\extracted");
}

例外

ArgumentNullException

partsはnullです。

ArgumentException

partsにはエントリがありません。

SecurityException

呼び出し元は、アクセスするために必要な権限を持っていません。

ArgumentException

ファイルへのパスが空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルへのアクセスが拒否されました。

PathTooLongException

指定された部分へのパス、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。

NotSupportedException

パスにコロン(:)が含まれています。

プロパティ

Entries

アーカイブを構成するAspose.Zip.SevenZip.SevenZipArchiveEntry型のエントリを取得します。

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

プロパティ値

ReadOnlyCollection<SevenZipArchiveEntry&gt;

NewEntrySettings

新しく追加されたAspose.Zip.SevenZip.SevenZipArchiveEntryアイテムに使用される圧縮および暗号化設定。

public SevenZipEntrySettings NewEntrySettings { get; }

プロパティ値

SevenZipEntrySettings

メソッド

CreateEntries(DirectoryInfo, bool)

指定されたディレクトリ内のすべてのファイルとディレクトリを再帰的にアーカイブに追加します。

public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

パラメーター

directory DirectoryInfo

圧縮するディレクトリ。

includeRootDirectory bool

ルートディレクトリ自体を含めるかどうかを示します。

戻り値

SevenZipArchive

エントリが構成されたアーカイブ。

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

例外

DirectoryNotFoundException

directoryへのパスが無効です(例えば、マッピングされていないドライブ上にある場合など)。

SecurityException

呼び出し元は、directoryにアクセスするための必要な権限を持っていません。

CreateEntries(string, bool)

指定されたディレクトリ内のすべてのファイルとディレクトリを再帰的にアーカイブに追加します。

public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

パラメーター

sourceDirectory string

圧縮するディレクトリ。

includeRootDirectory bool

ルートディレクトリ自体を含めるかどうかを示します。

戻り値

SevenZipArchive

エントリが構成されたアーカイブ。

7zアーカイブをLZMA2圧縮で構成します。

using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.7z");
}

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

アーカイブ内に単一のエントリを作成します。

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

パラメーター

name string

エントリの名前。

fileInfo FileInfo

圧縮されるファイルのメタデータ。

openImmediately bool

ファイルをすぐに開く場合はtrue、そうでない場合はアーカイブ保存時に開きます。

newEntrySettings SevenZipEntrySettings

追加されたAspose.Zip.SevenZip.SevenZipArchiveEntryアイテムに使用される圧縮および暗号化設定。

戻り値

SevenZipArchiveEntry

Seven Zipエントリインスタンス。

異なるパスワードで暗号化されたエントリを持つアーカイブを構成します。

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
        archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
        archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
        archive.Save(sevenZipFile);
    }
}

備考

エントリ名はnameパラメーター内でのみ設定されます。fileInfoパラメーターで提供されたファイル名はエントリ名に影響しません。

ファイルがopenImmediatelyパラメーターで即座に開かれる場合、アーカイブが保存されるまでブロックされます。

例外

UnauthorizedAccessException

fileInfoは読み取り専用またはディレクトリです。

DirectoryNotFoundException

指定されたパスが無効です(例えば、マッピングされていないドライブ上にある場合など)。

IOException

ファイルはすでに開かれています。

CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

アーカイブ内に単一のエントリを作成します。

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)

パラメーター

name string

エントリの名前。

source Stream

エントリの入力ストリーム。

newEntrySettings SevenZipEntrySettings

追加されたAspose.Zip.SevenZip.SevenZipArchiveEntryアイテムに使用される圧縮および暗号化設定。

fileInfo FileSystemInfo

圧縮されるファイルまたはフォルダのメタデータ。

戻り値

SevenZipArchiveEntry

SevenZipエントリインスタンス。

LZMA2圧縮された暗号化エントリを持つアーカイブを構成します。

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin")); 
        archive.Save(sevenZipFile);
    }
}

備考

エントリ名はnameパラメーター内でのみ設定されます。fileInfoパラメーターで提供されたファイル名はエントリ名に影響しません。

fileInfoは、エントリがディレクトリの場合、System.IO.DirectoryInfoを参照できます。

例外

InvalidOperationException

sourcefileInfoの両方がnullであるか、sourceがnullでfileInfoがディレクトリを指している場合。

CreateEntry(string, Stream, SevenZipEntrySettings)

アーカイブ内に単一のエントリを作成します。

public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)

パラメーター

name string

エントリの名前。

source Stream

エントリの入力ストリーム。

newEntrySettings SevenZipEntrySettings

追加されたAspose.Zip.SevenZip.SevenZipArchiveEntryアイテムに使用される圧縮および暗号化設定。

戻り値

SevenZipArchiveEntry

Zipエントリインスタンス。

すべてのエントリのLZMA2圧縮と暗号化を持つ7zアーカイブを構成します。

using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.7z");
}

CreateEntry(string, string, bool, SevenZipEntrySettings)

アーカイブ内に単一のエントリを作成します。

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)

パラメーター

name string

エントリの名前。

path string

新しいファイルの完全修飾名、または圧縮される相対ファイル名。

openImmediately bool

ファイルをすぐに開く場合はtrue、そうでない場合はアーカイブ保存時に開きます。

newEntrySettings SevenZipEntrySettings

追加されたAspose.Zip.SevenZip.SevenZipArchiveEntryアイテムに使用される圧縮および暗号化設定。

戻り値

SevenZipArchiveEntry

Zipエントリインスタンス。

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
    using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(sevenZipFile);
    }
}

備考

エントリ名はnameパラメーター内でのみ設定されます。pathパラメーターで提供されたファイル名はエントリ名に影響しません。

ファイルがopenImmediatelyパラメーターで即座に開かれる場合、アーカイブが保存されるまでブロックされます。

例外

ArgumentNullException

pathはnullです。

SecurityException

呼び出し元は、アクセスするために必要な権限を持っていません。

ArgumentException

pathは空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルpathへのアクセスが拒否されました。

PathTooLongException

指定されたpath、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。

NotSupportedException

pathに文字列の中にコロン(:)が含まれています。

Dispose()

管理されていないリソースの解放、リリース、またはリセットに関連するアプリケーション定義のタスクを実行します。

public void Dispose()

Dispose(bool)

管理されていないリソースの解放、リリース、またはリセットに関連するアプリケーション定義のタスクを実行します。

protected virtual void Dispose(bool disposing)

パラメーター

disposing bool

管理されたリソースを解放する必要があるかどうか。

ExtractToDirectory(string, string)

アーカイブ内のすべてのファイルを指定されたディレクトリに抽出します。

public void ExtractToDirectory(string destinationDirectory, string password = null)

パラメーター

destinationDirectory string

抽出されたファイルを配置するディレクトリへのパス。

password string

コンテンツの復号化のためのオプションのパスワード。

using (var archive = new SevenZipArchive("archive.7z")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

備考

ディレクトリが存在しない場合は作成されます。

passwordはコンテンツの復号化のみに使用されます。ファイル名が暗号化されている場合は、Aspose.Zip.SevenZip.SevenZipArchive.#ctor(System.String,System.String)またはAspose.Zip.SevenZip.SevenZipArchive.#ctor(System.IO.Stream,System.String)コンストラクターでパスワードを提供してください。

例外

ArgumentNullException

destinationDirectoryはnullです。

PathTooLongException

指定されたパス、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。

SecurityException

呼び出し元は、既存のディレクトリにアクセスするために必要な権限を持っていません。

NotSupportedException

ディレクトリが存在しない場合、パスにドライブラベル(“C:")の一部でないコロン文字(:)が含まれています。

ArgumentException

destinationDirectoryはゼロ長の文字列、空白のみを含むか、無効な文字を1つ以上含んでいます。無効な文字は、System.IO.Path.GetInvalidPathCharsメソッドを使用して取得できます。-または-パスはコロン文字(:)で始まっているか、コロン文字のみを含んでいます。

IOException

指定されたパスのディレクトリがファイルです。-または-ネットワーク名が不明です。

InvalidDataException

アーカイブが壊れています。

Save(Stream)

指定されたストリームに7zアーカイブを保存します。

public void Save(Stream output)

パラメーター

output Stream

宛先ストリーム。

using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
  using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
  {
    using (var archive = new SevenZipArchive())
    {
      archive.CreateEntry("data", source);
      archive.Save(sevenZipFile);
    }
  }
}

備考

outputはシーク可能でなければなりません。

例外

ArgumentException

outputはシークをサポートしていません。

ArgumentNullException

outputはnullです。

InvalidOperationException

エンコーダーがデータの圧縮に失敗しました。

Save(string)

提供された宛先ファイルにアーカイブを保存します。

public void Save(string destinationFileName)

パラメーター

destinationFileName string

作成されるアーカイブのパス。指定されたファイル名が既存のファイルを指している場合、上書きされます。

using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
   using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
   {
      archive.CreateEntry("data", source);
      archive.Save("archive.7z");
   }
}

備考

アーカイブを読み込んだのと同じパスに保存することが可能です。 ただし、この方法は一時ファイルへのコピーを使用するため、推奨されません。

例外

ArgumentNullException

destinationFileNameはnullです。

SecurityException

呼び出し元は、アクセスするために必要な権限を持っていません。

ArgumentException

destinationFileNameは空であるか、空白のみを含むか、無効な文字を含んでいます。

UnauthorizedAccessException

ファイルdestinationFileNameへのアクセスが拒否されました。

PathTooLongException

指定されたdestinationFileName、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。

NotSupportedException

destinationFileNameのファイルの中にコロン(:)が含まれています。

SaveSplit(string, SplitSevenZipArchiveSaveOptions)

提供された宛先ディレクトリにマルチボリュームアーカイブを保存します。

public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)

パラメーター

destinationDirectory string

アーカイブセグメントが作成されるディレクトリへのパス。

options SplitSevenZipArchiveSaveOptions

アーカイブ保存のオプション(ファイル名を含む)。

using (SevenZipArchive archive = new SevenZipArchive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitSevenZipArchiveSaveOptions("volume", 65536));
}

備考

このメソッドは、いくつかの(n)ファイルfilename.7z.001、filename.7z.002、...、filename.7z.(n)を構成します。

既存のアーカイブをマルチボリュームにすることはできません。

例外

InvalidOperationException

このアーカイブは既存のソースから開かれました。

ArgumentNullException

destinationDirectoryはnullです。

SecurityException

呼び出し元は、ディレクトリにアクセスするために必要な権限を持っていません。

ArgumentException

destinationDirectoryには無効な文字が含まれています(例: “, >, <または |)。

PathTooLongException

指定されたパスがシステムで定義された最大長を超えています。

 日本語