Class SevenZipArchive
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
このクラスは7zアーカイブファイルを表します。これを使用して7zアーカイブを作成および抽出します。
public class SevenZipArchive : 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)メソッドを参照してください。
例外
sourceStream
はシーク可能ではありません。
sourceStream
はnullです。
アーカイブには複数のコーダーが含まれています。現在は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)メソッドを参照してください。
例外
path
はnullです。
呼び出し元は、アクセスするために必要な権限を持っていません。
path
は空であるか、空白のみを含むか、無効な文字を含んでいます。
ファイルpath
へのアクセスが拒否されました。
指定されたpath
、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。
path
に文字列の中にコロン(:)が含まれています。
ファイルが見つかりません。
指定されたパスが無効です(例えば、マッピングされていないドライブ上にある場合など)。
ファイルはすでに開かれています。
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");
}
例外
parts
はnullです。
parts
にはエントリがありません。
呼び出し元は、アクセスするために必要な権限を持っていません。
ファイルへのパスが空であるか、空白のみを含むか、無効な文字を含んでいます。
ファイルへのアクセスが拒否されました。
指定された部分へのパス、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。
パスにコロン(:)が含まれています。
プロパティ
Entries
アーカイブを構成するAspose.Zip.SevenZip.SevenZipArchiveEntry型のエントリを取得します。
public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }
プロパティ値
ReadOnlyCollection<SevenZipArchiveEntry>
NewEntrySettings
新しく追加されたAspose.Zip.SevenZip.SevenZipArchiveEntryアイテムに使用される圧縮および暗号化設定。
public SevenZipEntrySettings NewEntrySettings { get; }
プロパティ値
メソッド
CreateEntries(DirectoryInfo, bool)
指定されたディレクトリ内のすべてのファイルとディレクトリを再帰的にアーカイブに追加します。
public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
パラメーター
directory
DirectoryInfo
圧縮するディレクトリ。
includeRootDirectory
bool
ルートディレクトリ自体を含めるかどうかを示します。
戻り値
エントリが構成されたアーカイブ。
例
using (SevenZipArchive archive = new SevenZipArchive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.7z");
}
例外
directory
へのパスが無効です(例えば、マッピングされていないドライブ上にある場合など)。
呼び出し元は、directory
にアクセスするための必要な権限を持っていません。
CreateEntries(string, bool)
指定されたディレクトリ内のすべてのファイルとディレクトリを再帰的にアーカイブに追加します。
public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
パラメーター
sourceDirectory
string
圧縮するディレクトリ。
includeRootDirectory
bool
ルートディレクトリ自体を含めるかどうかを示します。
戻り値
エントリが構成されたアーカイブ。
例
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アイテムに使用される圧縮および暗号化設定。
戻り値
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
パラメーターで即座に開かれる場合、アーカイブが保存されるまでブロックされます。
例外
fileInfo
は読み取り専用またはディレクトリです。
指定されたパスが無効です(例えば、マッピングされていないドライブ上にある場合など)。
ファイルはすでに開かれています。
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
圧縮されるファイルまたはフォルダのメタデータ。
戻り値
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を参照できます。
例外
source
とfileInfo
の両方が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アイテムに使用される圧縮および暗号化設定。
戻り値
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アイテムに使用される圧縮および暗号化設定。
戻り値
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
パラメーターで即座に開かれる場合、アーカイブが保存されるまでブロックされます。
例外
path
はnullです。
呼び出し元は、アクセスするために必要な権限を持っていません。
path
は空であるか、空白のみを含むか、無効な文字を含んでいます。
ファイルpath
へのアクセスが拒否されました。
指定されたpath
、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。
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)コンストラクターでパスワードを提供してください。
例外
destinationDirectory
はnullです。
指定されたパス、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。
呼び出し元は、既存のディレクトリにアクセスするために必要な権限を持っていません。
ディレクトリが存在しない場合、パスにドライブラベル(“C:")の一部でないコロン文字(:)が含まれています。
destinationDirectory
はゼロ長の文字列、空白のみを含むか、無効な文字を1つ以上含んでいます。無効な文字は、System.IO.Path.GetInvalidPathCharsメソッドを使用して取得できます。-または-パスはコロン文字(:)で始まっているか、コロン文字のみを含んでいます。
指定されたパスのディレクトリがファイルです。-または-ネットワーク名が不明です。
アーカイブが壊れています。
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
はシーク可能でなければなりません。
例外
output
はシークをサポートしていません。
output
はnullです。
エンコーダーがデータの圧縮に失敗しました。
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");
}
}
備考
アーカイブを読み込んだのと同じパスに保存することが可能です。 ただし、この方法は一時ファイルへのコピーを使用するため、推奨されません。
例外
destinationFileName
はnullです。
呼び出し元は、アクセスするために必要な権限を持っていません。
destinationFileName
は空であるか、空白のみを含むか、無効な文字を含んでいます。
ファイルdestinationFileName
へのアクセスが拒否されました。
指定されたdestinationFileName
、ファイル名、またはその両方が、システムで定義された最大長を超えています。たとえば、Windowsベースのプラットフォームでは、パスは248文字未満である必要があり、ファイル名は260文字未満である必要があります。
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)を構成します。
既存のアーカイブをマルチボリュームにすることはできません。
例外
このアーカイブは既存のソースから開かれました。
destinationDirectory
はnullです。
呼び出し元は、ディレクトリにアクセスするために必要な権限を持っていません。
destinationDirectory
には無効な文字が含まれています(例: “, >, <または |)。
指定されたパスがシステムで定義された最大長を超えています。