• C# 解压与压缩文件


    解压文件 ,引用 SharpZipLib.dll类库

    方法一:

      public void UnGzipFile(string zipfilename)
            {
    
                //同压缩文件同级同名的非压缩文件路径   
                var path = zipfilename.Replace(Path.GetFileName(zipfilename), Path.GetFileNameWithoutExtension(zipfilename));
                //创建压缩文件的输入流实例
                using (GZipInputStream zipFile = new GZipInputStream(File.OpenRead(zipfilename)))
                {
                    //创建目标文件的流
                    using (FileStream destFile = new FileStream(path, FileMode.Create))
                    {
                        int buffersize = 2048;//缓冲区的尺寸,一般是2048的倍数
                        byte[] FileData = new byte[buffersize];//创建缓冲数据
                        while (buffersize > 0)//一直读取到文件末尾
                        {
                            buffersize = zipFile.Read(FileData, 0, buffersize);//读取压缩文件数据
                            destFile.Write(FileData, 0, buffersize);//写入目标文件
                        }
                        destFile.Flush();
                    }
                }
            }

    方法二:

            /// <summary>
            /// 引用 SharpZipLib.dll
            /// </summary>
            /// <param name="zipFilePath">压缩文件</param>
            /// <param name="filePath">解压文件</param>
            public void gunZipFile(string zipFilePath, string filePath)
            {
                using (Stream inStream = new GZipInputStream(File.OpenRead(zipFilePath)))
                {
                    using (FileStream outStream = new FileStream(filePath, FileMode.Create))
                    {
                        byte[] buf = new byte[4096];
                        StreamUtils.Copy(inStream, outStream, buf);
                    }
                }
            }

    压缩

            /// <summary>
            /// 压缩文件
            /// </summary>
            /// <param name="filePath">文件路径</param>
            /// <param name="zipFilePath">压缩后的文件路径</param>
            public static void gZipFile(string filePath, string zipFilePath)
            {
                Stream s = new GZipOutputStream(File.Create(zipFilePath));
                FileStream fs = File.OpenRead(filePath);
                int size;
                byte[] buf = new byte[4096];
                do
                {
                    size = fs.Read(buf, 0, buf.Length);
                    s.Write(buf, 0, size);
                } while (size > 0);
                s.Close();
                fs.Close();
            }

    文章来源:http://walkerqt.blog.51cto.com/1310630/1706239

  • 相关阅读:
    Python 之解析配置文件模块ConfigParser
    SonarQube代码质量管理平台
    SVN代码统计工具StatSVN
    python 3接口测试
    python+selenium使用chrome时,报错ignore certificate errors
    python3发送邮件(有附件)
    日记
    杂记 包含 serialize().ajaxStart() .ajaxStop()以及其他
    还是要说一下XML。全当日记
    桑心!XML
  • 原文地址:https://www.cnblogs.com/xiaoyaodijun/p/7428366.html
Copyright © 2020-2023  润新知