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.
Призователят няма изискваното разрешение за достъп.
Пътят " е празен, съдържа само бели пространства или съдържа невалидни знаци.
code class=“paramref”>path.
code class=“paramref”>path", име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 знака, а имената на файла трябва да са по-малко от 260.
code class=“paramref”>path.
Документът не е намерен.
Определеният маршрут е невалиден, като например да се намира на безкартиран диск.
Филмът вече е отворен.
Документът е корумпиран.
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
Не можете да зареждате ZIP ключове, защото предоставените файлове са корумпирани.
Properties
Entries
Aspose.Zip.ArchiveEntry.
public ReadOnlyCollection<archiveentry> Entries { get; }
стойност на имота
ReadOnlyCollection < ArchiveEntry >
NewEntrySettings
Настройки за компресия и криптиране, използвани за ново добавени Aspose.Zip.ArchiveEntry елементи.
public ArchiveEntrySettings NewEntrySettings { get; }
стойност на имота
Methods
CreateEntries(Директива, 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
code class=“paramref”>directory.
code class=“paramref”>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(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
Входната инстанция на 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.
Призователят няма изискваното разрешение за достъп.
Пътят " е празен, съдържа само бели пространства или съдържа невалидни знаци.
code class=“paramref”>path.
code class=“paramref”>path", име на файла, или и двете надвишават максималната дължина, определена от системата. например, на платформи, базирани на Windows, пътеките трябва да са по-малко от 248 знака, а имената на файла трябва да са по-малко от 260.
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
Входната инстанция на 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(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
Входната инстанция на 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
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
Входната инстанция на 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
Индексът на входа, базиран на нула, трябва да бъде премахнат.
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 (:).
Директорът, посочен по пътя, е файл. -или- Име на мрежата не е известно.
Погрешен парола е предоставен. - или - Архивът е корумпиран.
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.
Призователят няма изискваното разрешение за достъп.
code class=“paramref”>destinationFileName.
code class=“paramref”>destinationFileName.
code class=“paramref”>destinationFileName’, име на файла, или и двете надвишават максималната дължина, определена от системата.На платформи, базирани на Windows, например, пътеките трябва да са по-малко от 248 символа, а имената на файла трябва да са по-малко от 260.
code class=“paramref”>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 |.
Определеният път надвишава максималната дължина, определена от системата.
Архивът е премахнат.