Class Archive

Class Archive

Именује се: Aspose.Zip Асамблеја: Aspose.Zip.dll (25.5.0)

Ова класа представља ЗИП архивни датотеку. користите га за састављање, екстракцију, или ажурирање ЗИС архива.

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)

Иницијалише нову инстанцију Аппосе.Зип.Архиве класе са опционалним подешавањама за његове улоге.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Подешавања компресије и шифровања коришћена за ново додате Aspose.Zip.ArchiveEntry елементе.Ако није наведено, најчешћа дефлате компресија без шифровања би се користила.

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(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Иницијалише нову инстанцију Аппосе.Зип.Архиве класе и саставља улазну листу која се може извући из архива.

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

Parameters

sourceStream Stream

Извор из архива.

loadOptions ArchiveLoadOptions

Опције за преузимање постојећих архива са.

newEntrySettings ArchiveEntrySettings

Подешавања компресије и шифровања коришћена за ново додате Aspose.Zip.ArchiveEntry елементе.Ако није наведено, најчешћа дефлате компресија без шифровања би се користила.

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

Овај конструктор не декомпресира било који улаз. погледајте Аппосе.Зип.АрхивеЕнтри.Опен(Систем.Стринг) метод за декомпресирање.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Наслов за шифровање за АЕС је у супротности са методом компресије Винзип.

Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Иницијалише нову инстанцију Аппосе.Зип.Архиве класе и саставља улазну листу која се може извући из архива.

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

Parameters

path string

Потпуно квалификовани или релативни пут до архивног датотеке.

loadOptions ArchiveLoadOptions

Опције за преузимање постојећих архива са.

newEntrySettings ArchiveEntrySettings

Подешавања компресије и шифровања коришћена за ново додате Aspose.Zip.ArchiveEntry елементе.Ако није наведено, најчешћа дефлате компресија без шифровања би се користила.

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

Овај конструктор не декомпресира било који улаз. погледајте Аппосе.Зип.АрхивеЕнтри.Опен(Систем.Стринг) метод за декомпресирање.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Позивач нема захтеван дозволу за приступ.

ArgumentException

path’ је празан, садржи само беле просторе, или садржи неважеће знакове.

UnauthorizedAccessException

Приступ датотеци path’ је одбијен.

PathTooLongException

На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 248 знакова, а имена датотеке морају бити мање од 260 знакова.

NotSupportedException

Датотека у path’ садржи колону (:) у средини редове.

FileNotFoundException

Датотека није пронађена.

DirectoryNotFoundException

Одређени пут је неважећи, на пример, да се налази на немапираном дискову.

IOException

Датотека је већ отворена.

InvalidDataException

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

Archive(Стринг , Стринг[], Архив опција)

Иницијалише нову инстанцију Аппосе.Зип.Архиве класе из мулти-волумен Зип архива и саставља улазну листу која се може извући из архива.

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

Parameters

mainSegment string

Пут до последњег сегмента мулти-волуменског архива са централним директоријом.

Обично овај сегмент има *.zip проширење и мање од других.

segmentsInOrder string []

Пут до сваког сегмента, али последњи мулти-волумен ЗИП архива поштује налог.

Уобичајено су именовали 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

Не можете преузети ЗИП наслове јер су обезбеђени датотеке корумпирани.

Properties

Entries

Добија улоге типа Aspose.Zip.ArchiveEntry који чине архиву.

public ReadOnlyCollection<archiveentry> Entries { get; }

Вредност имовине

ReadOnlyCollection < ArchiveEntry >

NewEntrySettings

Подешавања компресије и шифровања коришћена за ново додате Aspose.Zip.ArchiveEntry елементе.

public ArchiveEntrySettings NewEntrySettings { get; }

Вредност имовине

ArchiveEntrySettings

Methods

CreateEntries(ДирективаИнфо, Боол)

Додајте у архиву све датотеке и директорије поновљено у одређеном директору.

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

ЦИП улаз инстанција.

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

На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 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

ЦИП улаз инстанција.

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(string, 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

ЦИП улаз инстанција.

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

ЦИП улаз инстанција.

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

И source’ и fileInfo’ су нула или source’ је нула и fileInfo’ значи за директоријум.

CreateEntry(Стринг, Фунц<стрим>, Архиве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

ЦИП улаз инстанција.

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

Da li je potrebno iskoristiti upravljane resurse?

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

На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 248 знакова, а имена датотека морају бити мање од 260 знакова.

SecurityException

Позивач нема неопходне дозволе за приступ постојећем директоријуму.

NotSupportedException

Ако директоријум не постоји, пут садржи карактер колона (:) који није део етикета дискова (“Ц:”).

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

Mora da bude pismen.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Архив је укинут.

Save(String, 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’ je prazan, sadrži samo bele prostore ili sadrži nevažeće znakove.

UnauthorizedAccessException

Приступ датотеци destinationFileName’ је одбијен.

PathTooLongException

Потврђена <код класа=“paramref”>дестинацијаFileName’, име датотеке, или оба прелази максимално дужину одређену системом.На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 248 знакова, а имена датотеке морају бити мање од 260 знакова.

NotSupportedException

Датотека у destinationFileName’ садржи колону (:) у средини редове.

FileNotFoundException

Датотека није пронађена.

DirectoryNotFoundException

Одређени пут је неважећи, на пример, да се налази на немапираном дискову.

IOException

Датотека је већ отворена.

SaveSplit(Стринг, СплитArchiveSaveOptions)

Сачува мулти-волумен архива у дизајнерски директоријум који је обезбеђен.

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

Архив је укинут.

 Српски