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两个都sourcefileInfo为空或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);
    }
}

也可以看看