首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#如何压缩成zip格式的文件 能用系统自带的zip工具打开

2013-01-26 
c#怎么压缩成zip格式的文件 能用系统自带的zip工具打开?我是用的sharpziplib的压缩方法,但是压缩后 系统自

c#怎么压缩成zip格式的文件 能用系统自带的zip工具打开?
我是用的sharpziplib的压缩方法,但是压缩后 系统自带的ziped提取不出文件,也不报错,显示为空,也不知道是不是哪里写错了。但是用winrar和其他的7-zip等都可以。
尝试用.net自带的IO.Compression,但是好像只能压缩单个文件。。
谁知道怎么搞?下面是我的压缩方法:

/// <summary>
        /// 使用isharpziplib压缩文件
        /// </summary>
        /// <param name="rootDir">需要打包文件的顶级目录(结尾不含//)</param>
        /// <param name="fileList">打包的文件(夹)的全路径列表</param>
        /// <param name="filePath">目标压缩文件</param>
        /// <returns></returns>
        public static void CompressFile(string topDirName, List<string> fileNamesToZip, string ZipedFileName)
        {
            List<string> fileList = new List<string>();
            foreach (string ss in fileNamesToZip)
            {
                string filename = ss.Replace(topDirName, "");
                if (FileHelper.IsDir(ss))
                {
                    fileList.AddRange(GetFileAndDir(ss, topDirName));
                }
                else
                {
                    fileList.Add(filename);
                }
            }
            using (ZipOutputStream s = new ZipOutputStream(System.IO.File.Open(ZipedFileName, FileMode.Create)))
            {
                s.SetLevel(6);
                foreach (string file in fileList)
                {
                    if (FileHelper.IsDir(topDirName + file)) //如果是文件夹 folder
                    {
                        ZipEntry entry = new ZipEntry(file + "\");
                        entry.DateTime = DateTime.Now;


                        s.PutNextEntry(entry);
                    }
                    else  //文件
                    {
                        using (FileStream fs = File.OpenRead(topDirName + file))    //打开待压缩文件  
                        {
                            byte[] buffer = new byte[fs.Length];
                            fs.Read(buffer, 0, buffer.Length);      //读取文件流  
                            ZipEntry entry = new ZipEntry(file);    //新建实例 
                            entry.DateTime = DateTime.Now;
                            entry.Size = fs.Length;
                            fs.Close();
                            s.PutNextEntry(entry);
                            s.Write(buffer, 0, buffer.Length);
                        }
                    }
                }
            }
        }

压缩
[解决办法]
C#使用ICSharpCode.SharpZipLib.dll压缩文件夹和文件 
我一直用这个压缩和解压,压缩包能用winrar等工具解压
[解决办法]
去我的资源里看看撒
[解决办法]
baidu "C# Zip类",前辈们早为你们准备好了
[解决办法]
http://blog.sina.com.cn/s/blog_4076a9fb0100bbmi.html

热点排行