Class Archive
Именује се: Aspose.Zip Асамблеја: Aspose.Zip.dll (25.5.0)
Ова класа представља ЗИП архивни датотеку. користите га за састављање, екстракцију, или ажурирање ЗИС архива.
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)
Иницијалише нову инстанцију Аппосе.Зип.Архиве класе са опционалним подешавањама за његове улоге.
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
sourceStream’ is not seekable.
Наслов за шифровање за АЕС је у супротности са методом компресије Винзип.
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
path’ is null.
Позивач нема захтеван дозволу за приступ.
path’ је празан, садржи само беле просторе, или садржи неважеће знакове.
Приступ датотеци path’ је одбијен.
На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 248 знакова, а имена датотеке морају бити мање од 260 знакова.
Датотека у path’ садржи колону (:) у средини редове.
Датотека није пронађена.
Одређени пут је неважећи, на пример, да се налази на немапираном дискову.
Датотека је већ отворена.
Датотека је корумпирана.
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
Не можете преузети ЗИП наслове јер су обезбеђени датотеке корумпирани.
Properties
Entries
Добија улоге типа Aspose.Zip.ArchiveEntry који чине архиву.
public ReadOnlyCollection<archiveentry> Entries { get; }
Вредност имовине
ReadOnlyCollection < ArchiveEntry >
NewEntrySettings
Подешавања компресије и шифровања коришћена за ново додате Aspose.Zip.ArchiveEntry елементе.
public ArchiveEntrySettings NewEntrySettings { get; }
Вредност имовине
Methods
CreateEntries(ДирективаИнфо, Боол)
Додајте у архиву све датотеке и директорије поновљено у одређеном директору.
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(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
ЦИП улаз инстанција.
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’ је одбијен.
На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 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
ЦИП улаз инстанција.
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
ЦИП улаз инстанција.
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, 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
ЦИП улаз инстанција.
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
И 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
ЦИП улаз инстанција.
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
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
destinationDirectory’ is null.
На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 248 знакова, а имена датотека морају бити мање од 260 знакова.
Позивач нема неопходне дозволе за приступ постојећем директоријуму.
Ако директоријум не постоји, пут садржи карактер колона (:) који није део етикета дискова (“Ц:”).
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
Mora da bude pismen.
Exceptions
outputStream’ is not writable.
Архив је укинут.
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
destinationFileName’ is null.
Позивач нема захтеван дозволу за приступ.
destinationFileName’ je prazan, sadrži samo bele prostore ili sadrži nevažeće znakove.
Приступ датотеци destinationFileName’ је одбијен.
Потврђена <код класа=“paramref”>дестинацијаFileName’, име датотеке, или оба прелази максимално дужину одређену системом.На пример, на платформима заснованим на Виндовсу, путеви морају бити мање од 248 знакова, а имена датотеке морају бити мање од 260 знакова.
Датотека у destinationFileName’ садржи колону (:) у средини редове.
Датотека није пронађена.
Одређени пут је неважећи, на пример, да се налази на немапираном дискову.
Датотека је већ отворена.
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
Овај архив је отворен из постојећег извора.
Овај архив је компресиран са XZ методом и шифрован.
destinationDirectory’ is null.
Позивач нема неопходне дозволе за приступ директоријуму.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Одређени пут прелази максималну дужину одређену системом.
Архив је укинут.