C# 用C压缩文件#
我试图用C代码压缩我的文件,但这表明ZipFile类不存在。请建议如何使用C#压缩,我正在使用framework4.5 我的代码写在下面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
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就这些吗