C# SevenZipSharp-将文件追加到zip并删除文件路径

C# SevenZipSharp-将文件追加到zip并删除文件路径,c#,sevenzipsharp,C#,Sevenzipsharp,我使用SevenZipSharp将文件压缩为zip文件。 我有两个问题: 在同一目标文件上多次使用CompressFiles时,它不会追加文件,而是覆盖这些文件 我希望添加文件时不带整个路径,但似乎无法找到方法(我认为PreserveDirectoryRoot=false可以做到这一点,但事实并非如此) 有人有主意吗?您需要使用压缩模式。在第一次呼叫后追加。默认设置为压缩模式。创建。通过更改目录结构可以删除路径 相关的源代码是 公共密封部分类七缸压缩机 #如果不受管理 :SevenZipBase

我使用SevenZipSharp将文件压缩为zip文件。 我有两个问题:

  • 在同一目标文件上多次使用CompressFiles时,它不会追加文件,而是覆盖这些文件

  • 我希望添加文件时不带整个路径,但似乎无法找到方法(我认为PreserveDirectoryRoot=false可以做到这一点,但事实并非如此)


  • 有人有主意吗?

    您需要使用压缩模式。在第一次呼叫后追加。默认设置为压缩模式。创建。通过更改
    目录结构
    可以删除路径

    相关的源代码是

    公共密封部分类七缸压缩机
    #如果不受管理
    :SevenZipBase
    #恩迪夫
    {
    ///获取或设置压缩模式。
    /// 
    公共压缩模式压缩模式{get;set;}
    /// 
    ///获取或设置一个值,该值指示是否保留
    ///目录结构。
    /// 
    公共bool目录结构{get;set;}
    }
    
    谢谢,目录结构正常,但压缩模式仍有问题。创建zip后,我将模式更改为“Append”(comp.CompressionMode=SevenZip.CompressionMode.Append;)。但是,在为第二个文件执行comp.CompressFiles时,它会引发一个异常:给定的键在字典中不存在。我似乎不明白为什么。
        public sealed partial class SevenZipCompressor
    #if UNMANAGED
            : SevenZipBase
    #endif
        {
            /// Gets or sets the compression mode.
            /// </summary>
            public CompressionMode CompressionMode { get; set; }
            /// <summary>
    
            /// Gets or sets the value indicating whether to preserve the 
            ///   directory structure.
            /// </summary>
            public bool DirectoryStructure { get; set; }
        }