Archive.CreateEntry

CreateEntry(string, string, bool, ArchiveEntrySettings)

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

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, 
    ArchiveEntrySettings newEntrySettings = null)
ПараметрТипОписание
nameStringИмя записи.
pathStringПолное имя нового файла или относительное имя файла для сжатия.
openImmediatelyBooleanИстинно, если открыть файл сразу, в противном случае открыть файл при сохранении архива.
newEntrySettingsArchiveEntrySettingsПараметры сжатия и шифрования, используемые для добавленныхArchiveEntry элемент.

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

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

Исключения

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

Примечания

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

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

Примеры

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

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


CreateEntry(string, Stream, ArchiveEntrySettings)

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

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

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

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

Примеры

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

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

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

Исключения

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

Примечания

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

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

Примеры

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

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

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


CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

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

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

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

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

Исключения

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

Примечания

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

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

Примеры

Составьте архив с зашифрованной записью.

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

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