Class Archive
이름 공간 : Aspose.Zip 모임: Aspose.Zip.dll (25.5.0)
이 클래스는 ZIP 아카이브 파일을 나타냅니다.이를 사용하여, 저장, 추출, 또는 업데이트 zip 파일.
public class Archive : IArchive, IDisposable
Inheritance
Implements
상속 회원들
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
sourceStream’ is not seekable.
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
path’ is null.
호출자는 필요한 액세스 허가를 가지고 있지 않습니다.
path’는 텅 비어 있고, 흰색 공간만 포함하거나, 불가능한 문자를 포함합니다.
path" 파일에 대한 액세스는 거부됩니다.
지정된 path’, 파일 이름, 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, Windows 기반 플랫폼에서 경로는 248 문자 미만이어야하며 파일 이름은 260 문자 미만이어야합니다.
path’에 있는 파일에는 링의 중간에 있는 열(:)이 포함되어 있습니다.
파일은 찾을 수 없습니다.
지정된 경로는 불가능하며, 예를 들어 지정되지 않은 드라이브에 있습니다.
파일은 이미 열려 있습니다.
파일이 부패했다.
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
제공된 파일이 부패하기 때문에 ZIP 헤드셋을 충전할 수 없습니다.
Properties
Entries
그것은 아카이브를 구성하는 Aspose.Zip.ArchiveEntry 형식의 입력을 얻습니다.
public ReadOnlyCollection<archiveentry> Entries { get; }
부동산 가치
ReadOnlyCollection <에 대한 정보 ArchiveEntry >
NewEntrySettings
새로 추가된 Aspose.Zip.ArchiveEntry 항목에 사용되는 압축 및 암호화 설정.
public ArchiveEntrySettings NewEntrySettings { get; }
부동산 가치
Methods
CreateEntries(디렉토리Info, Bool)
데이터 디렉토리에 있는 모든 파일과 매뉴얼을 반복적으로 파일에 추가합니다.
public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameters
directory
DirectoryInfo
컴프레스를 위한 디렉토리
includeRootDirectory
bool
뿌리 디렉토리 자체를 포함하거나 포함하지 않는지 나타냅니다.
Returns
아카이브는 작성된 포스팅으로 구성되어 있습니다.
Examples
using (Archive archive = new Archive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.zip");
}
Exceptions
directory’로 가는 경로는 불가능하며, 예를 들어 맵화되지 않은 드라이브에 있습니다.
호출자는 directory"에 액세스 할 수있는 필요한 허가를 가지고 있지 않습니다.
CreateEntries(링크, 볼)
데이터 디렉토리에 있는 모든 파일과 매뉴얼을 반복적으로 파일에 추가합니다.
public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
컴프레스를 위한 디렉토리
includeRootDirectory
bool
뿌리 디렉토리 자체를 포함하거나 포함하지 않는지 나타냅니다.
Returns
아카이브는 작성된 포스팅으로 구성되어 있습니다.
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
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
path’ is null.
호출자는 필요한 액세스 허가를 가지고 있지 않습니다.
path’는 텅 비어 있고, 흰색 공간만 포함하거나, 불가능한 문자를 포함합니다.
path" 파일에 대한 액세스는 거부됩니다.
지정된 path’, 파일 이름, 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, Windows 기반 플랫폼에서 경로는 248 문자 미만이어야하며 파일 이름은 260 문자 미만이어야합니다.
path’에 있는 파일에는 링의 중간에 있는 열(:)이 포함되어 있습니다.
CreateEntry(스트리밍, 스트리밍, ArchiveEntrySettings)
아카이브 내에서 단일 입력을 만듭니다.
public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)
Parameters
name
string
입구의 이름입니다.
source
Stream
입구에 대한 입력 스트림.
newEntrySettings
ArchiveEntrySettings
압축 및 암호화 설정은 Aspose.Zip.ArchiveEntry 항목을 추가하는 데 사용됩니다.
Returns
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
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
fileInfo’ is read-only or is a directory.
지정된 경로는 불가능하며, 예를 들어 지정되지 않은 드라이브에 있습니다.
파일은 이미 열려 있습니다.
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
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
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
<에 대한 정보
Stream
>
입구에 대한 입력 스트림을 제공하는 방법.
newEntrySettings
ArchiveEntrySettings
압축 및 암호화 설정은 Aspose.Zip.ArchiveEntry 항목을 추가하는 데 사용됩니다.
Returns
ZIP 입구
Examples
암호화된 입력을 가진 아카이브를 구성합니다.
System.Func<Stream> 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
입력된 파일이 삭제되었습니다.
Examples
다음은 마지막을 제외한 모든 게시물을 제거하는 방법입니다 :
using (var archive = new Archive("archive.zip"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
아카이브가 삭제되었습니다.
DeleteEntry(이트)
인덱스에 의해 입력 목록에서 입력을 제거합니다.
public Archive DeleteEntry(int entryIndex)
Parameters
entryIndex
int
제거하려는 입력의 0 기반 지수.
Returns
입력된 파일이 삭제되었습니다.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
아카이브가 삭제되었습니다.
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
destinationDirectory’ is null.
지정된 경로, 파일 이름 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, Windows 기반 플랫폼에서 경로는 248 문자 미만이어야하며 파일 이름은 260 문자 미만이어야합니다.
호출자는 기존 디렉토리에 액세스 할 수있는 필요한 허가를 가지고 있지 않습니다.
디렉토리가 존재하지 않는 경우, 경로는 드라이브 라벨의 일부가 아닌 척추 캐릭터 (:)를 포함합니다 (“C:”).
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 (:).
경로에 의해 지정된 디렉토리는 파일입니다. -or- 네트워크 이름은 알려지지 않습니다.
잘못된 암호가 제공되었습니다. - 또는 - 아카이브가 부패합니다.
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
outputStream’ is not writable.
아카이브가 삭제되었습니다.
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
destinationFileName’ is null.
호출자는 필요한 액세스 허가를 가지고 있지 않습니다.
destinationFileName’는 텅 비어 있고, 단지 흰색 공간만 포함되어 있거나, 부적절한 문자를 포함합니다.
destinationFileName’ 파일에 대한 액세스는 거부됩니다.
지정된 destinationFileName’, 파일 이름, 또는 둘 다 시스템에 의해 정의 된 최대 길이를 초과합니다.예를 들어, 윈도우 기반 플랫폼에서, 경로는 248 문자 미만이어야하며, 파일 이름은 260 문자 미만이어야합니다.
destinationFileName’에 있는 파일에는 라인의 중간에 있는 열(:)이 포함되어 있습니다.
파일은 찾을 수 없습니다.
지정된 경로는 불가능하며, 예를 들어 지정되지 않은 드라이브에 있습니다.
파일은 이미 열려 있습니다.
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
이 아카이브는 기존 출처에서 열렸습니다.
이 아카이브는 XZ 방법으로 압축되고 암호화됩니다.
destinationDirectory’ is null.
호출자는 디렉토리에 액세스 할 수있는 필요한 허가를 가지고 있지 않습니다.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
지정된 경로는 시스템에 의해 정의된 최대 길이를 초과합니다.
아카이브가 삭제되었습니다.