博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 解压缩
阅读量:4947 次
发布时间:2019-06-11

本文共 2332 字,大约阅读时间需要 7 分钟。

解压缩

///         /// 解压缩文件        ///         /// 解压到目录        /// 文件字节流        public static void UnZip(string dirPath, byte[] bytes, ProgressBar pb, ProgressBar pbTotal)        {            pb.Minimum = 0;            pb.Value = 0;            pb.Maximum = ZipCount(bytes);            ZipInputStream s = new ZipInputStream(new MemoryStream(bytes));            ZipEntry theEntry;            while ((theEntry = s.GetNextEntry()) != null)            {                pb.Value++;                pbTotal.Value++;                string fileName = Path.GetFileName(theEntry.Name);                //生成解压目录                if (!Directory.Exists(dirPath))                {                    Directory.CreateDirectory(dirPath);                }                if (string.IsNullOrEmpty(fileName))                {                    string dir = System.IO.Path.Combine(dirPath, theEntry.Name);                    if (!Directory.Exists(dir))                    {                        Directory.CreateDirectory(dir);                    }                }                else                {                    //解压文件到指定的目录                    FileStream streamWriter = File.Create(System.IO.Path.Combine(dirPath, theEntry.Name));                    int size = 2048;                    byte[] data = new byte[2048];                    while (true)                    {                        size = s.Read(data, 0, data.Length);                        if (size > 0)                        {                            streamWriter.Write(data, 0, size);                        }                        else                        {                            break;                        }                    }                    streamWriter.Close();                }            }            s.Close();        }
///         /// 计算文件数量        ///         ///         /// 
public static int ZipCount(byte[] bytes) { int count = 0; ZipInputStream s = new ZipInputStream(new MemoryStream(bytes)); ZipEntry theEntry; while ((theEntry = s.GetNextEntry()) != null) { count++; } s.Close(); return count; }

 

posted on
2013-04-17 22:24 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/Shadow3627/archive/2013/04/17/3027256.html

你可能感兴趣的文章
7、SQL Server索引、表压缩
查看>>
ExcelGenerator 生成excel
查看>>
Linux网络设置(第二版) --互联网寻址过程
查看>>
Qt之QTableView添加复选框(QAbstractTableModel)
查看>>
还是UVa340
查看>>
Layer 初始
查看>>
拜占庭将军问题
查看>>
[Matlab] 双目相机模型仿真程序
查看>>
WordPress常用函数以及各模块源码文件名
查看>>
遍历list集合,并使用remove删除一个元素时,出现list index out of range的解决方法...
查看>>
location匹配
查看>>
C++标准转换运算符(1)
查看>>
GCC & Maker
查看>>
C#winform程序安装时自动卸载新版本覆盖旧版本
查看>>
delphi7 编译程序时报win32.indcu.a病毒的解决方法
查看>>
Specifications查询
查看>>
javascript学习笔记(七)利用javascript来创建和存储cookie
查看>>
mysql 创建存储过程报错
查看>>
PowerDesigner 将Comment转化成NAME 脚本
查看>>
给出一个string字符串,统计里面出现的字符个数
查看>>