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

Пътят " е празен, съдържа само бели пространства или съдържа невалидни знаци.

UnauthorizedAccessException

code class=“paramref”>path.

PathTooLongException

code class=“paramref”>path", име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 знака, а имената на файла трябва да са по-малко от 260.

NotSupportedException

code class=“paramref”>path.

FileNotFoundException

Документът не е намерен.

DirectoryNotFoundException

Определеният маршрут е невалиден, като например да се намира на безкартиран диск.

IOException

Филмът вече е отворен.

InvalidDataException

Документът е корумпиран.

Archive(Стрийк, Стрийк[], ArchiveLoadOptions)

Иницијализира нова инстанция на Aspose.Zip.Archive клас от мулти-волумен zip архив и съставя списък на вход може да бъде извлечен от архива.

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

Този шаблон извлича в директория архив от три сегмента.

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 < ArchiveEntry >

NewEntrySettings

Настройки за компресия и криптиране, използвани за ново добавени Aspose.Zip.ArchiveEntry елементи.

public ArchiveEntrySettings NewEntrySettings { get; }

стойност на имота

ArchiveEntrySettings

Methods

CreateEntries(Директива, 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

code class=“paramref”>directory.

SecurityException

code class=“paramref”>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(String, String, 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

Пътят " е празен, съдържа само бели пространства или съдържа невалидни знаци.

UnauthorizedAccessException

code class=“paramref”>path.

PathTooLongException

code class=“paramref”>path", име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 знака, а имената на файла трябва да са по-малко от 260.

NotSupportedException

code class=“paramref”>path.

CreateEntry(Стрий, Стрий, АрхивEntrySettings)

Създаване на един вход в архива.

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(String, Stream, АрхивEntrySettings, 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

Името на файла, предоставено в параметър, не засяга името на входа.

Можете да се позовавате на System.IO.DirectoryInfo, ако входът е директория.

Exceptions

InvalidOperationException

code class=“paramref”>source’ и fileInfo’ са нула или source’ е нула и 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

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

Индексът на входа, базиран на нула, трябва да бъде премахнат.

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

Директорът, посочен по пътя, е файл. -или- Име на мрежата не е известно.

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

code class=“paramref”>destinationFileName.

UnauthorizedAccessException

code class=“paramref”>destinationFileName.

PathTooLongException

code class=“paramref”>destinationFileName’, име на файла, или и двете надвишават максималната дължина, определена от системата.На платформи, базирани на Windows, например, пътеките трябва да са по-малко от 248 символа, а имената на файла трябва да са по-малко от 260.

NotSupportedException

code class=“paramref”>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

Архивът е премахнат.

 Български