Class Archive

Class Archive

이름 공간 : Aspose.Zip 모임: Aspose.Zip.dll (25.5.0)

이 클래스는 ZIP 아카이브 파일을 나타냅니다.이를 사용하여, 저장, 추출, 또는 업데이트 zip 파일.

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

상속 회원들

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

Constructors

Archive(ArchiveEntrySettings)

Aspose.Zip.Archive 클래스의 새로운 예를 선택 설정으로 시작합니다.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

새로 추가된 Aspose.Zip.ArchiveEntry 항목에 사용되는 압축 및 암호화 설정.지정되지 않으면 가장 일반적인 Deflate 압축 암호화없이 사용됩니다.

Examples

다음 예제는 기본 설정으로 단일 파일을 압축하는 방법을 보여줍니다.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(흐름, ArchiveLoadOptions, ArchiveEntrySettings)

Aspose.Zip.Archive 클래스의 새로운 예를 시작하고 아카이브에서 추출 할 수있는 입력 목록을 구성합니다.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

아카이브의 출처입니다.

loadOptions ArchiveLoadOptions

기존 아카이브를 업로드 할 수있는 옵션.

newEntrySettings ArchiveEntrySettings

새로 추가된 Aspose.Zip.ArchiveEntry 항목에 사용되는 압축 및 암호화 설정.지정되지 않으면 가장 일반적인 Deflate 압축 암호화없이 사용됩니다.

Examples

다음 예제는 암호화 된 아카이브를 추출 한 다음 첫 번째 입력을 압축합니다.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

이 건축기는 어떤 입력도 압축하지 않습니다. Aspose.Zip.ArchiveEntry.Open(System.String) 방법을 참조하십시오.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

AES에 대한 암호화 헤더는 WinZip 압축 방법에 반대합니다.

Archive(링크, ArchiveLoadOptions, ArchiveEntrySettings)

Aspose.Zip.Archive 클래스의 새로운 예를 시작하고 아카이브에서 추출 할 수있는 입력 목록을 구성합니다.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

완전히 자격을 갖춘 또는 아카이브 파일에 대한 상대 경로.

loadOptions ArchiveLoadOptions

기존 아카이브를 업로드 할 수있는 옵션.

newEntrySettings ArchiveEntrySettings

새로 추가된 Aspose.Zip.ArchiveEntry 항목에 사용되는 압축 및 암호화 설정.지정되지 않으면 가장 일반적인 Deflate 압축 암호화없이 사용됩니다.

Examples

다음 예제는 암호화 된 아카이브를 추출 한 다음 첫 번째 입력을 압축합니다.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

이 건축기는 어떤 입력도 압축하지 않습니다. Aspose.Zip.ArchiveEntry.Open(System.String) 방법을 참조하십시오.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

호출자는 필요한 액세스 허가를 가지고 있지 않습니다.

ArgumentException

path’는 텅 비어 있고, 흰색 공간만 포함하거나, 불가능한 문자를 포함합니다.

UnauthorizedAccessException

path" 파일에 대한 액세스는 거부됩니다.

PathTooLongException

지정된 path’, 파일 이름, 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, Windows 기반 플랫폼에서 경로는 248 문자 미만이어야하며 파일 이름은 260 문자 미만이어야합니다.

NotSupportedException

path’에 있는 파일에는 링의 중간에 있는 열(:)이 포함되어 있습니다.

FileNotFoundException

파일은 찾을 수 없습니다.

DirectoryNotFoundException

지정된 경로는 불가능하며, 예를 들어 지정되지 않은 드라이브에 있습니다.

IOException

파일은 이미 열려 있습니다.

InvalidDataException

파일이 부패했다.

Archive(스트링, 스트링[ ] [ [ ], 아카이브 옵션)

멀티 볼륨 지프 아카이브에서 Aspose.Zip.Archive 클래스의 새로운 예를 시작하고 아카이브에서 추출 할 수있는 입력 목록을 구성합니다.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

중앙 디렉토리와 함께 멀티 볼륨 아카이브의 마지막 세그먼트로 이동합니다.

일반적으로 이 세그먼트는 *.zip 확장 및 다른 세그먼트보다 작습니다.

segmentsInOrder string [ ] [ [ ]

각 세그먼트에 도달하지만 여러 볼륨 zip 아카이브의 마지막 순서를 준수합니다.

일반적으로 그들은 filename.z01, filename.z02, …, filename.z(n-1)라고 불렀다.

loadOptions ArchiveLoadOptions

기존 아카이브를 업로드 할 수있는 옵션.

Examples

이 샘플은 디렉토리에 3개의 세그먼트의 아카이브를 추출합니다.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

제공된 파일이 부패하기 때문에 ZIP 헤드셋을 충전할 수 없습니다.

Properties

Entries

그것은 아카이브를 구성하는 Aspose.Zip.ArchiveEntry 형식의 입력을 얻습니다.

public ReadOnlyCollection<archiveentry> Entries { get; }

부동산 가치

ReadOnlyCollection &lt에 대한 정보 ArchiveEntry >

NewEntrySettings

새로 추가된 Aspose.Zip.ArchiveEntry 항목에 사용되는 압축 및 암호화 설정.

public ArchiveEntrySettings NewEntrySettings { get; }

부동산 가치

ArchiveEntrySettings

Methods

CreateEntries(디렉토리Info, Bool)

데이터 디렉토리에 있는 모든 파일과 매뉴얼을 반복적으로 파일에 추가합니다.

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

Parameters

directory DirectoryInfo

컴프레스를 위한 디렉토리

includeRootDirectory bool

뿌리 디렉토리 자체를 포함하거나 포함하지 않는지 나타냅니다.

Returns

Archive

아카이브는 작성된 포스팅으로 구성되어 있습니다.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

directory’로 가는 경로는 불가능하며, 예를 들어 맵화되지 않은 드라이브에 있습니다.

SecurityException

호출자는 directory"에 액세스 할 수있는 필요한 허가를 가지고 있지 않습니다.

CreateEntries(링크, 볼)

데이터 디렉토리에 있는 모든 파일과 매뉴얼을 반복적으로 파일에 추가합니다.

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

Parameters

sourceDirectory string

컴프레스를 위한 디렉토리

includeRootDirectory bool

뿌리 디렉토리 자체를 포함하거나 포함하지 않는지 나타냅니다.

Returns

Archive

아카이브는 작성된 포스팅으로 구성되어 있습니다.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(링크, 링크, bool, ArchiveEntrySettings)

아카이브 내에서 단일 입력을 만듭니다.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

입구의 이름입니다.

path string

새 파일의 완전히 자격을 갖춘 이름, 또는 압축 될 상대 파일 이름.

openImmediately bool

사실, 즉시 파일을 열면, 그렇지 않으면 파일을 저장할 수 있습니다.

newEntrySettings ArchiveEntrySettings

압축 및 암호화 설정은 Aspose.Zip.ArchiveEntry 항목을 추가하는 데 사용됩니다.

Returns

ArchiveEntry

ZIP 입구

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarks

입력 이름은 단지 파라미터 내에 설정됩니다.파라미터에 제공된 파일 이름은 입력 이름에 영향을 미치지 않습니다.

파일이 파라미터로 즉시 열리면 파일이 저장될 때까지 차단됩니다.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

호출자는 필요한 액세스 허가를 가지고 있지 않습니다.

ArgumentException

path’는 텅 비어 있고, 흰색 공간만 포함하거나, 불가능한 문자를 포함합니다.

UnauthorizedAccessException

path" 파일에 대한 액세스는 거부됩니다.

PathTooLongException

지정된 path’, 파일 이름, 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, Windows 기반 플랫폼에서 경로는 248 문자 미만이어야하며 파일 이름은 260 문자 미만이어야합니다.

NotSupportedException

path’에 있는 파일에는 링의 중간에 있는 열(:)이 포함되어 있습니다.

CreateEntry(스트리밍, 스트리밍, ArchiveEntrySettings)

아카이브 내에서 단일 입력을 만듭니다.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

입구의 이름입니다.

source Stream

입구에 대한 입력 스트림.

newEntrySettings ArchiveEntrySettings

압축 및 암호화 설정은 Aspose.Zip.ArchiveEntry 항목을 추가하는 데 사용됩니다.

Returns

ArchiveEntry

ZIP 입구

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(링크, FileInfo, bool, ArchiveEntrySettings)

아카이브 내에서 단일 입력을 만듭니다.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

입구의 이름입니다.

fileInfo FileInfo

파일의 메타 데이터가 압축됩니다.

openImmediately bool

사실, 즉시 파일을 열면, 그렇지 않으면 파일을 저장할 수 있습니다.

newEntrySettings ArchiveEntrySettings

압축 및 암호화 설정은 Aspose.Zip.ArchiveEntry 항목을 추가하는 데 사용됩니다.

Returns

ArchiveEntry

ZIP 입구

Examples

각각 다른 암호화 방법과 암호로 암호화 된 입력과 아카이브를 구성합니다.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

입력 이름은 단지 파라미터 내에 설정됩니다.파라미터에 제공된 파일 이름은 입력 이름에 영향을 미치지 않습니다.

파일이 파라미터로 즉시 열리면 파일이 저장될 때까지 차단됩니다.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

지정된 경로는 불가능하며, 예를 들어 지정되지 않은 드라이브에 있습니다.

IOException

파일은 이미 열려 있습니다.

CreateEntry(링크, 스트림, ArchiveEntrySettings, FileSystemInfo)

아카이브 내에서 단일 입력을 만듭니다.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

입구의 이름입니다.

source Stream

입구에 대한 입력 스트림.

newEntrySettings ArchiveEntrySettings

압축 및 암호화 설정은 Aspose.Zip.ArchiveEntry 항목을 추가하는 데 사용됩니다.

fileInfo FileSystemInfo

파일 또는 폴더의 메타 데이터가 압축됩니다.

Returns

ArchiveEntry

ZIP 입구

Examples

암호화된 입력을 가진 아카이브를 구성합니다.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

입력 이름은 단지 파라미터 내에 설정됩니다.파라미터에 제공된 파일 이름은 입력 이름에 영향을 미치지 않습니다.

이 게시물을 즐겨찾기로 설정 6월 19 can refer to System.IO.DirectoryInfo if the entry is directory.

Exceptions

InvalidOperationException

source’와 fileInfo’는 null 또는 source’는 null이며 fileInfo’는 디렉토리에 해당합니다.

CreateEntry(링크, Func, 아카이브EntrySettings)

아카이브 내에서 단일 입력을 만듭니다.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

입구의 이름입니다.

streamProvider Func &lt에 대한 정보 Stream >

입구에 대한 입력 스트림을 제공하는 방법.

newEntrySettings ArchiveEntrySettings

압축 및 암호화 설정은 Aspose.Zip.ArchiveEntry 항목을 추가하는 데 사용됩니다.

Returns

ArchiveEntry

ZIP 입구

Examples

암호화된 입력을 가진 아카이브를 구성합니다.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

이 방법은 .NET Framework 4.0 및 그 이상 및 .NET Standard 2.0 버전에 적용됩니다.

DeleteEntry(ArchiveEntry)

입력 목록에서 특정 입력의 첫 번째 발생을 제거합니다.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

입력은 입력 목록에서 제거해야합니다.

Returns

Archive

입력된 파일이 삭제되었습니다.

Examples

다음은 마지막을 제외한 모든 게시물을 제거하는 방법입니다 :

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

아카이브가 삭제되었습니다.

DeleteEntry(이트)

인덱스에 의해 입력 목록에서 입력을 제거합니다.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

제거하려는 입력의 0 기반 지수.

Returns

Archive

입력된 파일이 삭제되었습니다.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

아카이브가 삭제되었습니다.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

응용 프로그램으로 정의된 작업을 수행하며, 관리되지 않은 자원을 배출, 배출 또는 재배치하는 것과 관련이 있습니다.

public void Dispose()

Dispose(바울)

응용 프로그램으로 정의된 작업을 수행하며, 관리되지 않은 자원을 배출, 배출 또는 재배치하는 것과 관련이 있습니다.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

관리된 자원이 낭비되어야 한다.

ExtractToDirectory(스트리트)

아카이브에 있는 모든 파일을 제공된 디렉토리로 추출합니다.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

디렉토리로 이동하여 추출된 파일을 입력합니다.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

디렉토리가 존재하지 않는다면, 그것은 만들어집니다.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

지정된 경로, 파일 이름 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, Windows 기반 플랫폼에서 경로는 248 문자 미만이어야하며 파일 이름은 260 문자 미만이어야합니다.

SecurityException

호출자는 기존 디렉토리에 액세스 할 수있는 필요한 허가를 가지고 있지 않습니다.

NotSupportedException

디렉토리가 존재하지 않는 경우, 경로는 드라이브 라벨의 일부가 아닌 척추 캐릭터 (:)를 포함합니다 (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

경로에 의해 지정된 디렉토리는 파일입니다. -or- 네트워크 이름은 알려지지 않습니다.

InvalidDataException

잘못된 암호가 제공되었습니다. - 또는 - 아카이브가 부패합니다.

Save(흐름, ArchiveSaveOptions)

제공되는 스트림에 아카이브를 저장합니다.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

목적지 흐름

saveOptions ArchiveSaveOptions

아카이브 저장 옵션

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarks

글쓰기가 있어야 합니다.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

아카이브가 삭제되었습니다.

Save(링크, ArchiveSaveOptions)

제공된 목적지 파일에 아카이브를 저장합니다.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

만약 지정된 파일 이름이 기존 파일을 지정한다면, 그것은 과장됩니다.

saveOptions ArchiveSaveOptions

아카이브 저장 옵션

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

아카이브를 동일한 경로로 저장할 수 있습니다.그러나 이 접근 방식은 일시적인 파일로 복사하는 것을 사용하기 때문에 이것은 권장되지 않습니다.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

호출자는 필요한 액세스 허가를 가지고 있지 않습니다.

ArgumentException

destinationFileName’는 텅 비어 있고, 단지 흰색 공간만 포함되어 있거나, 부적절한 문자를 포함합니다.

UnauthorizedAccessException

destinationFileName’ 파일에 대한 액세스는 거부됩니다.

PathTooLongException

지정된 destinationFileName’, 파일 이름, 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, 윈도우 기반 플랫폼에서, 경로는 248 문자 미만이어야하며, 파일 이름은 260 문자 미만이어야합니다.

NotSupportedException

destinationFileName’에 있는 파일에는 라인의 중간에 있는 열(:)이 포함되어 있습니다.

FileNotFoundException

파일은 찾을 수 없습니다.

DirectoryNotFoundException

지정된 경로는 불가능하며, 예를 들어 지정되지 않은 드라이브에 있습니다.

IOException

파일은 이미 열려 있습니다.

SaveSplit(스트리트, SplitArchiveSaveOptions)

제공된 목적지 디렉토리로 멀티 볼륨 아카이브를 저장합니다.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

아카이브 세그먼트가 생성되는 디렉토리로 가는 경로.

options SplitArchiveSaveOptions

파일 이름을 포함하여 파일 저장 옵션.

Examples

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

Remarks

이 방법은 여러 () 파일 filename.z01, filename.z02, …, filename.z(n-1), filename.zip을 구성합니다.

기존 아카이브를 다량 볼륨으로 만들 수 없습니다.

Exceptions

InvalidOperationException

이 아카이브는 기존 출처에서 열렸습니다.

NotSupportedException

이 아카이브는 XZ 방법으로 압축되고 암호화됩니다.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

호출자는 디렉토리에 액세스 할 수있는 필요한 허가를 가지고 있지 않습니다.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

지정된 경로는 시스템에 의해 정의된 최대 길이를 초과합니다.

ObjectDisposedException

아카이브가 삭제되었습니다.

 한국어