Class SevenZipArchive
Название пространства: Aspose.Zip.SevenZip Ассоциация: Aspose.Zip.dll (25.5.0)
Этот класс представляет собой 7z архивный файл. Используйте его для составления и экстракции 7z архивов.
public class SevenZipArchive : IArchive, IDisposable
Inheritance
Implements
Наследованные члены
object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()
Constructors
SevenZipArchive(SevenZipEntrySettings)
Инициализует новую инстанцию класса Aspose.Zip.SevenZip.SevenZipArchive с опциональными настройками для его входов.
public SevenZipArchive(SevenZipEntrySettings newEntrySettings = null)
Parameters
newEntrySettings
SevenZipEntrySettings
Настройки компрессии и шифрования, используемые для новое добавление элементов Aspose.Zip.SevenZip.SevenZipArchiveEntry.Если не указано, LZMA компрессия без шифрования будет использоваться.
Examples
Следующий пример показывает, как компрессировать один файл по умолчанию: LZMA-компрессия без шифрования.
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(sevenZipFile);
}
}
SevenZipArchive(Стрий, Стрий)
Инициализует новую инстанцию класса Aspose.Zip.SevenZip.SevenZipArchive и составляет входный список, который можно извлечь из архива.
public SevenZipArchive(Stream sourceStream, string password = null)
Parameters
sourceStream
Stream
Источник этого архива.
password
string
Опциональный пароль для расшифровки.Если имена файлов шифруются, он должен присутствовать.
Examples
using (SevenZipArchive archive = new SevenZipArchive(File.OpenRead("archive.7z")))
{
archive.ExtractToDirectory("C:\\extracted");
}
Remarks
Этот конструктор не декомпрессирует любые входы. см. Метод декомпрессии Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String).
Exceptions
sourceStream’ is not seekable.
sourceStream’ is null.
Архив содержит более одного кодера. теперь поддерживается только компрессия LZMA.
SevenZipArchive(Стринг, Стринг)
Инициализует новую инстанцию класса Aspose.Zip.SevenZip.SevenZipArchive и составляет входный список, который можно извлечь из архива.
public SevenZipArchive(string path, string password = null)
Parameters
path
string
Полностью квалифицированный или относительный путь к архиву.
password
string
Опциональный пароль для расшифровки.Если имена файлов шифруются, он должен присутствовать.
Examples
using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
{
archive.ExtractToDirectory("C:\\extracted");
}
Remarks
Этот конструктор не декомпрессирует любые входы. см. Метод декомпрессии Aspose.Zip.SevenZip.SevenZipArchive.ExtractToDirectory(System.String,System.String).
Exceptions
path’ is null.
Заказчик не имеет требуемого разрешения на доступ.
path" пустая, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу path" отказывается.
Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл в path’ содержит колону (:) в середине строки.
Файл не найден.
Указанный маршрут является недействительным, например, находиться на немапированном диске.
Файл уже открыт.
SevenZipArchive(Стриг[ ], Стринг)
Инициализует новую инстанцию класса Aspose.Zip.SevenZip.SevenZipArchive из мульти-волуменного архива 7z и составляет входный список, который можно вывести из архива.
public SevenZipArchive(string[] parts, string password = null)
Parameters
parts
string
[ ]
Путешествия к каждому сегменту мульти-волуменного архива 7з в соответствии с порядком
password
string
Опциональный пароль для расшифровки.Если имена файлов шифруются, он должен присутствовать.
Examples
using (SevenZipArchive archive = new SevenZipArchive(new string[] { "multi.7z.001", "multi.7z.002", "multi.7z.003" }))
{
archive.ExtractToDirectory("C:\\extracted");
}
Exceptions
parts’ is null.
parts’ has no entries.
Заказчик не имеет требуемого разрешения на доступ.
Дорога к файлу пустая, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу отрицается.
Например, на платформах, основанных на Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл на пути содержит колону (:) в середине строки.
Properties
Entries
Получается вход Aspose.Zip.SevenZip.SevenZipArchiveEntry типа, составляющего архив.
public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }
Стоимость недвижимости
ReadOnlyCollection • < SevenZipArchiveEntry >
NewEntrySettings
Настройки компрессии и шифрования, используемые для новое добавление элементов Aspose.Zip.SevenZip.SevenZipArchiveEntry.
public SevenZipEntrySettings NewEntrySettings { get; }
Стоимость недвижимости
Methods
CreateEntries(Дистрибьютор, Bool)
Добавьте в архив все файлы и каталоги повторно в указанном каталоге.
public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parameters
directory
DirectoryInfo
Директор для компресса.
includeRootDirectory
bool
Он указывает, включать ли корневую директорию сама или нет.
Returns
Архив с составленными входами.
Examples
using (SevenZipArchive archive = new SevenZipArchive())
{
DirectoryInfo folder = new DirectoryInfo("C:\folder");
archive.CreateEntries(folder);
archive.Save("folder.7z");
}
Exceptions
Путь в directory" не действует, например, на непамятном диске.
Вызовчик не имеет требуемого разрешения на доступ к directory".
CreateEntries(Стриг, Боол)
Добавьте в архив все файлы и каталоги повторно в указанном каталоге.
public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parameters
sourceDirectory
string
Директор для компресса.
includeRootDirectory
bool
Он указывает, включать ли корневую директорию сама или нет.
Returns
Архив с составленными входами.
Examples
Составьте архив 7Z с LZMA2 компрессией.
using (SevenZipArchive archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
archive.CreateEntries("C:\folder");
archive.Save("folder.7z");
}
CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)
Создайте единый вход в архиве.
public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
Parameters
name
string
Название входа.
fileInfo
FileInfo
Метаданные файла должны быть компрессированы.
openImmediately
bool
Правда, если открыть файл сразу, то в противном случае открыть файл на архиве.
newEntrySettings
SevenZipEntrySettings
Настройки компрессии и шифрования используются для добавления элемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Returns
Семь Zip входных инстанций.
Examples
Составьте архив с входами, зашифрованными различными паролями каждый.
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
FileInfo fi1 = new FileInfo("data1.bin");
FileInfo fi2 = new FileInfo("data2.bin");
FileInfo fi3 = new FileInfo("data3.bin");
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
archive.Save(sevenZipFile);
}
}
Remarks
Название входа устанавливается только в пределах параметра.Название файла, предоставленное в параметре, не влияет на имя входа.
Если файл открывается сразу с параметром, он блокируется до сохранения архива.
Exceptions
fileInfo’ is read-only or is a directory.
Указанный маршрут является недействительным, например, находиться на немапированном диске.
Файл уже открыт.
CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)
Создайте единый вход в архиве.
public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)
Parameters
name
string
Название входа.
source
Stream
Входный поток для входа.
newEntrySettings
SevenZipEntrySettings
Настройки компрессии и шифрования используются для добавления элемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.
fileInfo
FileSystemInfo
Метаданные файла или папки должны быть компрессированы.
Returns
Входный инстанция 7Zip.
Examples
Составьте архив с LZMA2 компрессированным шифрованным входом.
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF}), new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("test1")), new FileInfo("data1.bin"));
archive.Save(sevenZipFile);
}
}
Remarks
Название входа устанавливается только в пределах параметра.Название файла, предоставленное в параметре, не влияет на имя входа.
можно ссылаться на System.IO.DirectoryInfo, если вход является каталогом.
Exceptions
И source’ и
fileInfo’ нуль или
source’ нуль и
fileInfo’ означает каталог.
CreateEntry(Стрий, Стрий, SevenZipEntrySettings)
Создайте единый вход в архиве.
public SevenZipArchiveEntry CreateEntry(string name, Stream source, SevenZipEntrySettings newEntrySettings = null)
Parameters
name
string
Название входа.
source
Stream
Входный поток для входа.
newEntrySettings
SevenZipEntrySettings
Настройки компрессии и шифрования используются для добавления элемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Returns
Входный инстанция ZIP.
Examples
Составьте 7з-архив с LZMA2 компрессией и шифрованием всех входов.
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings(), new SevenZipAESEncryptionSettings("p@s$"))))
{
archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
archive.Save("archive.7z");
}
CreateEntry(string, string, bool, SevenZipEntrySettings)
Создайте единый вход в архиве.
public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
Parameters
name
string
Название входа.
path
string
Полностью квалифицированное имя нового файла или относительное имя файла, которое должно быть компрессировано.
openImmediately
bool
Правда, если открыть файл сразу, то в противном случае открыть файл на архиве.
newEntrySettings
SevenZipEntrySettings
Настройки компрессии и шифрования используются для добавления элемента Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Returns
Входный инстанция ZIP.
Examples
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMA2CompressionSettings())))
{
archive.CreateEntry("data.bin", "file.dat");
archive.Save(sevenZipFile);
}
}
Remarks
Название входа устанавливается только в пределах параметра.Название файла, предоставленное в параметре, не влияет на имя входа.
Если файл открывается сразу с параметром, он блокируется до сохранения архива.
Exceptions
path’ is null.
Заказчик не имеет требуемого разрешения на доступ.
path" пустая, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу path" отказывается.
Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл в path’ содержит колону (:) в середине строки.
Dispose()
Осуществляет задания, определенные приложением, связанные с освобождением, освобождением или восстановлением неконтролируемых ресурсов.
public void Dispose()
Dispose(Боол)
Осуществляет задания, определенные приложением, связанные с освобождением, освобождением или восстановлением неконтролируемых ресурсов.
protected virtual void Dispose(bool disposing)
Parameters
disposing
bool
Следует ли использовать управляемые ресурсы.
ExtractToDirectory(Стринг, Стринг)
Выводит все файлы в архиве в предоставленный каталог.
public void ExtractToDirectory(string destinationDirectory, string password = null)
Parameters
destinationDirectory
string
Путь к каталогу для размещения извлеченных файлов.
password
string
Опциональный пароль для расшифровки контента.
Examples
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.ExtractToDirectory("C:\extracted");
}
Remarks
Если каталог не существует, он будет создан.
используется только для расшифровки контента. Если имена файлов шифровываются, предоставите пароль в Aspose.Zip.SevenZop.SevenZapArchive.#ctor(System.String,Systems. String) или _www.seven-Zup. seven.
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(Stream)
Сберегает архив 7Z в предоставленный поток.
public void Save(Stream output)
Parameters
output
Stream
Достопримечательности потока.
Examples
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new SevenZipArchive())
{
archive.CreateEntry("data", source);
archive.Save(sevenZipFile);
}
}
}
Remarks
Она должна быть поисковой.
Exceptions
output’ does not support seeking.
output’ is null.
Кодировщик не успел компрессировать данные.
Save(Стриг)
Сохранить архив до предоставленного целевого файла.
public void Save(string destinationFileName)
Parameters
destinationFileName
string
Если указанное имя файла указывает на существующий файл, оно будет переписано.
Examples
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
{
archive.CreateEntry("data", source);
archive.Save("archive.7z");
}
}
Remarks
Можно сохранить архив на тот же путь, с которого он был загружен. однако, это не рекомендуется, потому что этот подход использует копирование в временный файл.
Exceptions
destinationFileName’ is null.
Заказчик не имеет требуемого разрешения на доступ.
destinationFileName’ является пустым, содержит только белые пространства или содержит недействительные символы.
Доступ к файлу destinationFileName’ отрицается.
Определенный destinationFileName’, имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.
Файл в destinationFileName’ содержит колону (:) в середине строки.
SaveSplit(Стриг, SplitSevenZipArchiveSaveOptions)
Сберегает мульти-обменный архив в предоставленный каталог назначений.
public void SaveSplit(string destinationDirectory, SplitSevenZipArchiveSaveOptions options)
Parameters
destinationDirectory
string
Путь к каталогу, где должны быть созданы архивные сегменты.
options
SplitSevenZipArchiveSaveOptions
Опции для хранения архивов, включая имя файла.
Examples
using (SevenZipArchive archive = new SevenZipArchive())
{
archive.CreateEntry("entry.bin", "data.bin");
archive.SaveSplit(@"C:\Folder", new SplitSevenZipArchiveSaveOptions("volume", 65536));
}
Remarks
Этот метод состоит из нескольких () файлов filename.7z.001, filename.7z.002, …, filename.7z.(n).
Нельзя создавать существующий архив множественного объема.
Exceptions
Этот архив был открыт из существующего источника.
destinationDirectory’ is null.
Звонитель не имеет требуемого разрешения на доступ к каталогу.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Указанный маршрут превышает максимальную длину, установленную системой.