日期:2014-05-17  浏览次数:21187 次

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 + "\\");
  &n