C# 用C压缩文件#

C# 用C压缩文件#,c#,C#,我试图用C代码压缩我的文件,但这表明ZipFile类不存在。请建议如何使用C#压缩,我正在使用framework4.5 我的代码写在下面 using System; using System.IO; using System.IO.Compression; namespace ZipSample { class Program { static void Main(string[] args) { string[] Ma

我试图用C代码压缩我的文件,但这表明ZipFile类不存在。请建议如何使用C#压缩,我正在使用framework4.5

我的代码写在下面

using System;
using System.IO;
using System.IO.Compression;


namespace ZipSample
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] MainDirs = Directory.GetDirectories("c:\\users\\public\reports");

            for (int i = 0; i < MainDirs.Length; i++)
            {
                using (ZipFile zip = new ZipFile())
                {
                    zip.UseUnicodeAsNecessary = true;
                    zip.AddDirectory(MainDirs[i]);
                    zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;
                    zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G");
                    zip.Save(string.Format("test{0}.zip", i));
                }
            }
        }
    }
}
使用系统;
使用System.IO;
使用系统IO压缩;
名称空间ZipSample
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串[]MainDirs=Directory.GetDirectories(“c:\\users\\public\reports”);
对于(int i=0;i

确保添加了System.IO.Compression.FileSystem.dll作为参考。 信息是从网站上获取的


编辑:作为行
zip.CompressionLevel=Ionic.Zlib.CompressionLevel.BestCompression显示,您混淆了内置的
ZipFile
类等(System.IO.Compression.FileSystem.dll)和第三方库DotNetZip(Ionic.dll)

请确保添加了System.IO.Compression.FileSystem.dll作为参考。 信息是从网站上获取的


编辑:作为行
zip.CompressionLevel=Ionic.Zlib.CompressionLevel.BestCompression显示,您混淆了内置的
ZipFile
类等(System.IO.Compression.FileSystem.dll)和第三方库DotNetZip(Ionic.dll)

解决方案1:

这是因为您试图实例化一个静态类

using System.IO.Compression;
...

string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
string extractPath = @"c:\example\extract";

ZipFile.CreateFromDirectory(startPath, zipPath);
ZipFile.ExtractToDirectory(zipPath, extractPath);
在修复了这个问题后,你的代码似乎对我有效

来自文档:

提供用于创建、提取和打开zip的静态方法 档案

更多信息请点击此处:


解决方案2:

这是因为您混合了离子库代码和.Net库引用。如果您想继续使用它,您应该下载该库并将其添加为引用,而不是.Net库

图书馆及其文档可在此处找到: 或

下面是一个来自文档的快速示例(可在上面链接下载的库zip中找到):


解决方案1:

这是因为您试图实例化一个静态类

using System.IO.Compression;
...

string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
string extractPath = @"c:\example\extract";

ZipFile.CreateFromDirectory(startPath, zipPath);
ZipFile.ExtractToDirectory(zipPath, extractPath);
在修复了这个问题后,你的代码似乎对我有效

来自文档:

提供用于创建、提取和打开zip的静态方法 档案

更多信息请点击此处:


解决方案2:

这是因为您混合了离子库代码和.Net库引用。如果您想继续使用它,您应该下载该库并将其添加为引用,而不是.Net库

图书馆及其文档可在此处找到: 或

下面是一个来自文档的快速示例(可在上面链接下载的库zip中找到):



是的,它已经开始工作了我已经添加了显示参考的屏幕截图,仍然不工作了是的,它已经开始工作了我已经添加了显示参考的屏幕截图,仍然不工作了不是问题的答案而是:将c:\\users\\public\reports更改为c:\\users\\public\\reports或使用@“c:\users\public\reports”;另外,您的保存位置不正确。。。可能将其更改为string.Format(“c:\\users\\public\\test{0}.zip”,i)@M.NasserJavaid-不,你不需要-这是System.Io.Compression()@M.NasserJavaid的一部分-我认为Jay是对的,除了默认压缩,.NET ZipFile和Ionic ZipFile是不可交换的。无法在.NET ZipFile上设置这些属性。您在哪里找到要显示的示例?在Visual Studio中看到的语法错误消息是什么。根据颜色,您的屏幕截图似乎显示IDE知道什么是
ZipFile
,并且它是一个类。因此,您认为“但它表明ZipFile类不存在”的假设是不正确的。这不是问题的答案,而是:将c:\\users\\public\reports更改为c:\\users\\public\\reports或使用@“c:\users\public\reports”;另外,您的保存位置不正确。。。可能将其更改为string.Format(“c:\\users\\public\\test{0}.zip”,i)@M.NasserJavaid-不,你不需要-这是System.Io.Compression()@M.NasserJavaid的一部分-我认为Jay是对的,除了默认压缩,.NET ZipFile和Ionic ZipFile是不可交换的。无法在.NET ZipFile上设置这些属性。您在哪里找到要显示的示例?在Visual Studio中看到的语法错误消息是什么。根据颜色,您的屏幕截图似乎显示IDE知道什么是
ZipFile
,并且它是一个类。所以你的假设“但它表明ZipFile类不存在”是不正确的。另外请注意,这可能是因为他试图将Ionic ZipFile用作.NET ZipFile。整个示例都是错误的。修复了问题,谢谢。你不这么认为吗?也许还有一个关于爱奥尼亚的例子,所以OP的意思是:)@Schuere这样行吗?:)@Andy——你能发布一个完整的程序来压缩包含子文件夹和文件的文件夹吗?请注意,这可能是因为他试图将Ionic ZipFile用作.NET ZipFile。整个示例都是错误的。修复了问题,谢谢。你不这么认为吗?也许还有一个关于爱奥尼亚·索普的例子可以说明这一点:)@Schuere就这些吗