C# 如何使用System.IO.Compression仅压缩当前目录

C# 如何使用System.IO.Compression仅压缩当前目录,c#,.net,C#,.net,没有明显的方法或参数可以做到这一点 包括所有子目录 我可以循环当前目录文件并使用 ZipArchive但这假设已经存在一个ZIP文件,可以向其中添加文件。除非我在某个地方创建了一个空的ZIP文件并将其复制到目标,但这似乎不美观。别担心,我刚刚发现这会创建一个新的空ZIP文件 string[] filePaths = Directory.GetFiles(item.Path, "*", SearchOption.TopDirectoryOnly);

没有明显的方法或参数可以做到这一点

包括所有子目录

我可以循环当前目录文件并使用
ZipArchive
但这假设已经存在一个ZIP文件,可以向其中添加文件。除非我在某个地方创建了一个空的ZIP文件并将其复制到目标,但这似乎不美观。

别担心,我刚刚发现这会创建一个新的空ZIP文件

            string[] filePaths = Directory.GetFiles(item.Path, "*", SearchOption.TopDirectoryOnly);

            using (ZipArchive zip = ZipFile.Open(item.Path2, ZipArchiveMode.Create))
            {
                foreach (string filePath in filePaths)
                {
                    zip.CreateEntryFromFile(filePath, Path.GetFileName(filePath));
                }
            }