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
는 길이가 0인 문자열이거나 공백만 포함하거나 하나 이상의 유효하지 않은 문자를 포함합니다. 유효하지 않은 문자는 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
는 “, >, < 또는 |와 같은 유효하지 않은 문자를 포함합니다.
지정된 경로가 시스템에서 정의한 최대 길이를 초과합니다.