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物品。

返回值

七个 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两个都sourcefileInfo为空或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 条目实例。

例子

使用 LZMA2 压缩和加密所有条目组成 7z 存档。

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

也可以看看