SevenZipArchive.CreateEntry

CreateEntry(string, FileInfo, bool, SevenZipEntrySettings)

Create single entry within the archive.

public SevenZipArchiveEntry CreateEntry(string name, FileInfo fileInfo, 
    bool openImmediately = false, SevenZipEntrySettings newEntrySettings = null)
ParameterTypeDescription
nameStringThe name of the entry.
fileInfoFileInfoThe metadata of file to be compressed.
openImmediatelyBooleanTrue if open the file immediately, otherwise open the file on archive saving.
newEntrySettingsSevenZipEntrySettingsCompression and encryption settings used for added SevenZipArchiveEntry item.

Return Value

Seven Zip entry instance.

Exceptions

exceptioncondition
UnauthorizedAccessExceptionfileInfo is read-only or is a directory.
DirectoryNotFoundExceptionThe specified path is invalid, such as being on an unmapped drive.
IOExceptionThe file is already open.

Remarks

The entry name is solely set within name parameter. The file name provided in fileInfo parameter does not affect the entry name.

If the file is opened immediately with openImmediately parameter it becomes blocked until archive is saved.

Examples

Compose archive with entries encrypted with different passwords each.

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

See Also


CreateEntry(string, Stream, SevenZipEntrySettings, FileSystemInfo)

Create single entry within the archive.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, 
    SevenZipEntrySettings newEntrySettings, FileSystemInfo fileInfo)
ParameterTypeDescription
nameStringThe name of the entry.
sourceStreamThe input stream for the entry.
newEntrySettingsSevenZipEntrySettingsCompression and encryption settings used for added SevenZipArchiveEntry item.
fileInfoFileSystemInfoThe metadata of file or folder to be compressed.

Return Value

SevenZip entry instance.

Exceptions

exceptioncondition
InvalidOperationExceptionBoth source and fileInfo are null or source is null and fileInfo stands for directory.

Remarks

The entry name is solely set within name parameter. The file name provided in fileInfo parameter does not affect the entry name.

fileInfo can refer to DirectoryInfo if the entry is directory.

Examples

Compose archive with LZMA2 compressed encrypted entry.

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

See Also


CreateEntry(string, Stream, SevenZipEntrySettings)

Create single entry within the archive.

public SevenZipArchiveEntry CreateEntry(string name, Stream source, 
    SevenZipEntrySettings newEntrySettings = null)
ParameterTypeDescription
nameStringThe name of the entry.
sourceStreamThe input stream for the entry.
newEntrySettingsSevenZipEntrySettingsCompression and encryption settings used for added SevenZipArchiveEntry item.

Return Value

Zip entry instance.

Examples

Compose 7z archive with LZMA2 compression and encryption of all entries.

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

See Also


CreateEntry(string, string, bool, SevenZipEntrySettings)

Create single entry within the archive.

public SevenZipArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, 
    SevenZipEntrySettings newEntrySettings = null)
ParameterTypeDescription
nameStringThe name of the entry.
pathStringThe fully qualified name of the new file, or the relative file name to be compressed.
openImmediatelyBooleanTrue if open the file immediately, otherwise open the file on archive saving.
newEntrySettingsSevenZipEntrySettingsCompression and encryption settings used for added SevenZipArchiveEntry item.

Return Value

Zip entry instance.

Exceptions

exceptioncondition
ArgumentNullExceptionpath is null.
SecurityExceptionThe caller does not have the required permission to access.
ArgumentExceptionThe path is empty, contains only white spaces, or contains invalid characters.
UnauthorizedAccessExceptionAccess to file path is denied.
PathTooLongExceptionThe specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.
NotSupportedExceptionFile at path contains a colon (:) in the middle of the string.

Remarks

The entry name is solely set within name parameter. The file name provided in path parameter does not affect the entry name.

If the file is opened immediately with openImmediately parameter it becomes blocked until archive is saved.

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

See Also