Class SevenZipArchive

Class SevenZipArchive

Название пространства: Aspose.Zip.SevenZip Ассоциация: Aspose.Zip.dll (25.5.0)

Этот класс представляет собой 7z архивный файл. Используйте его для составления и экстракции 7z архивов.

public class SevenZipArchive : IArchive, IDisposable

Inheritance

object SevenZipArchive

Implements

IArchive , IDisposable

Наследованные члены

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

ArgumentException

sourceStream’ is not seekable.

ArgumentNullException

sourceStream’ is null.

NotImplementedException

Архив содержит более одного кодера. теперь поддерживается только компрессия 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

ArgumentNullException

path’ is null.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

path" пустая, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу path" отказывается.

PathTooLongException

Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

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

FileNotFoundException

Файл не найден.

DirectoryNotFoundException

Указанный маршрут является недействительным, например, находиться на немапированном диске.

IOException

Файл уже открыт.

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

ArgumentNullException

parts’ is null.

ArgumentException

parts’ has no entries.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

Дорога к файлу пустая, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу отрицается.

PathTooLongException

Например, на платформах, основанных на Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

Файл на пути содержит колону (:) в середине строки.

Properties

Entries

Получается вход Aspose.Zip.SevenZip.SevenZipArchiveEntry типа, составляющего архив.

public ReadOnlyCollection<sevenziparchiveentry> Entries { get; }

Стоимость недвижимости

ReadOnlyCollection • < SevenZipArchiveEntry >

NewEntrySettings

Настройки компрессии и шифрования, используемые для новое добавление элементов Aspose.Zip.SevenZip.SevenZipArchiveEntry.

public SevenZipEntrySettings NewEntrySettings { get; }

Стоимость недвижимости

SevenZipEntrySettings

Methods

CreateEntries(Дистрибьютор, Bool)

Добавьте в архив все файлы и каталоги повторно в указанном каталоге.

public SevenZipArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parameters

directory DirectoryInfo

Директор для компресса.

includeRootDirectory bool

Он указывает, включать ли корневую директорию сама или нет.

Returns

SevenZipArchive

Архив с составленными входами.

Examples

using (SevenZipArchive archive = new SevenZipArchive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.7z");
}

Exceptions

DirectoryNotFoundException

Путь в directory" не действует, например, на непамятном диске.

SecurityException

Вызовчик не имеет требуемого разрешения на доступ к directory".

CreateEntries(Стриг, Боол)

Добавьте в архив все файлы и каталоги повторно в указанном каталоге.

public SevenZipArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parameters

sourceDirectory string

Директор для компресса.

includeRootDirectory bool

Он указывает, включать ли корневую директорию сама или нет.

Returns

SevenZipArchive

Архив с составленными входами.

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

SevenZipArchiveEntry

Семь 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

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Указанный маршрут является недействительным, например, находиться на немапированном диске.

IOException

Файл уже открыт.

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

SevenZipArchiveEntry

Входный инстанция 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

InvalidOperationException

И 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

SevenZipArchiveEntry

Входный инстанция 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

SevenZipArchiveEntry

Входный инстанция 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

ArgumentNullException

path’ is null.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

path" пустая, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу path" отказывается.

PathTooLongException

Указанный path", имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, пути должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

Файл в 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

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

ArgumentException

output’ does not support seeking.

ArgumentNullException

output’ is null.

InvalidOperationException

Кодировщик не успел компрессировать данные.

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

ArgumentNullException

destinationFileName’ is null.

SecurityException

Заказчик не имеет требуемого разрешения на доступ.

ArgumentException

destinationFileName’ является пустым, содержит только белые пространства или содержит недействительные символы.

UnauthorizedAccessException

Доступ к файлу destinationFileName’ отрицается.

PathTooLongException

Определенный destinationFileName’, имя файла, или оба превышают максимальную длину, установленную системой. Например, на платформах на базе Windows, маршруты должны быть менее 248 символов, а имена файлов должны быть менее 260 символов.

NotSupportedException

Файл в 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

InvalidOperationException

Этот архив был открыт из существующего источника.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

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

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

Указанный маршрут превышает максимальную длину, установленную системой.

 Русский