SevenZipArchive.CreateEntry

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Создать одну запись в архиве.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, 
    bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
ПараметрТипОписание
nameStringИмя записи.
fileInfoFileInfoМетаданные файла для сжатия.
openImmediatelyBooleanИстинно, если открыть файл сразу, в противном случае открыть файл при сохранении архива.
newEntrySettingsSevenZipEntrySettingsПараметры сжатия и шифрования, используемые для добавленныхSevenZipArchiveEntry элемент.

Возвращаемое значение

Экземпляр записи Seven Zip.

Исключения

исключениеусловие
UnauthorizedAccessExceptionfileInfo доступен только для чтения или является каталогом.
DirectoryNotFoundExceptionУказанный путь недействителен, например, находится на несопоставленном диске.
IOExceptionФайл уже открыт.

Примечания

Имя записи устанавливается исключительно в пределахname параметр. Имя файла, указанное вfileInfo параметр не влияет на имя записи.

Если файл открывается сразу с помощьюopenImmediately параметр блокируется до тех пор, пока архив не будет сохранен.

Примеры

Составьте архив с записями, зашифрованными разными паролями.

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);
    }
}

Смотрите также


CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Создать одну запись в архиве.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, 
    SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)
ПараметрТипОписание
nameStringИмя записи.
sourceStreamВходной поток для записи.
newEntrySettingsSevenZipEntrySettingsПараметры сжатия и шифрования, используемые для добавленныхSevenZipArchiveEntry элемент.
fileInfoFileSystemInfoМетаданные файла или папки для сжатия.

Возвращаемое значение

Экземпляр записи SevenZip.

Исключения

исключениеусловие
InvalidOperationExceptionОбаsource иfileInfo являются нулевыми илиsourceявляется нулевым иfileInfo обозначает каталог.

Примечания

Имя записи устанавливается исключительно в пределахname параметр. Имя файла, указанное вfileInfo параметр не влияет на имя записи.

fileInfo может относиться кDirectoryInfo если запись является каталогом.

Примеры

Составьте архив со сжатой зашифрованной записью 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);
    }
}

Смотрите также


CreateEntry(string, Stream, SevenZipEntrySettings)

Создать одну запись в архиве.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, 
    SevenZipEntrySettings newEntrySettings = null)
ПараметрТипОписание
nameStringИмя записи.
sourceStreamВходной поток для записи.
newEntrySettingsSevenZipEntrySettingsПараметры сжатия и шифрования, используемые для добавленныхSevenZipArchiveEntry элемент.

Возвращаемое значение

Экземпляр записи ZIP.

Примеры

Составьте архив 7z со сжатием 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)
ПараметрТипОписание
nameStringИмя записи.
pathStringПолное имя нового файла или относительное имя файла для сжатия.
openImmediatelyBooleanИстинно, если открыть файл сразу, в противном случае открыть файл при сохранении архива.
newEntrySettingsSevenZipEntrySettingsПараметры сжатия и шифрования, используемые для добавленныхSevenZipArchiveEntry элемент.

Возвращаемое значение

Экземпляр записи ZIP.

Исключения

исключениеусловие
ArgumentNullExceptionpath нулевой.
SecurityExceptionУ вызывающего абонента нет необходимого разрешения на доступ.
ArgumentExceptionpath пуст, содержит только пробелы или содержит недопустимые символы.
UnauthorizedAccessExceptionДоступ к файлуpath отказано.
PathTooLongExceptionУказанныйpath, имя файла или оба превышают максимальную длину, определенную системой. Например, на платформах Windows пути должны содержать менее 248 символов, а имена файлов — менее 260 символов.
NotSupportedExceptionФайл вpath содержит двоеточие (:) в середине строки.

Примечания

Имя записи устанавливается исключительно в пределахname параметр. Имя файла, указанное вpath параметр не влияет на имя записи.

Если файл открывается сразу с помощьюopenImmediately параметр блокируется до тех пор, пока архив не будет сохранен.

Примеры

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);
    }
}

Смотрите также