zoukankan      html  css  js  c++  java
  • WinForm解压缩

          private void button1_Click(object sender, EventArgs e)
            {
                //1.压缩包的路径及压缩包的名称
                //2.解压缩的路径及名称
                string rarPath = @"E: est3.rar";//压缩文件的路径
                string extract = @"E: est3";//解压缩的路径
           
                using (ZipInputStream zis = new ZipInputStream(File.OpenRead(rarPath)))//首先读取文件流(内存中)
                {
                    ZipEntry entry = null;
                    while ((entry=zis.GetNextEntry())!=null)//提供了一个迭代的方法,每循环一次获取下一条数据 返回entry
                    {
                        string temp = entry.Name;//06/tt/tt/xx.txt//Name时一个虚拟的路径
                        //这一句是拼接物理路径虚拟路径到文件夹 E:\test1虚拟路径的文件夹
                        //用于创建文件夹
                        string directorName = extract +"\"+ Path.GetDirectoryName(temp);
                        string fileName = extract + "\"+entry.Name.Replace("/", "\");//获取物理文件的路径到文件
                        if (!Directory.Exists(directorName))  //判断存放解压出来的文件的存放目录是否存在
                        {
                            //创建文件夹的路径就是directorName的路径,创建文件夹时可以根据路径创建国歌文件夹
                            Directory.CreateDirectory(directorName);
                        }
                        //把一个流中的文件保存到磁盘上,首先是读取流中的数据字节, zis.read(data,0,data.length
                        using (FileStream stream = File.Create(fileName))
                        {
                            int size = 4096;//每次只是读取4096个字节
                            //设置缓冲区
                            byte[] data = new byte[4*1024];
                            //
                            while (true)
                            {
                                size= zis.Read(data, 0, data.Length);//这里时将zis的字节读取到data中
                                if (size > 0)
                                {
                                    stream.Write(data, 0, size);//写入到文件中
                                }
                                else {
                                    break;
                                }
                            }
                        }
                    }
                }
            }
  • 相关阅读:
    Linux磁盘、目录、文件操作命令
    VMware虚拟机网络环境类型
    ASCII
    关于String StringBuffer StringBuilder
    多线程并发编程
    TCP面向连接网络编程
    记一次渗透某XX站
    记一次对微信引流网站的简单渗透测试
    幕布V1.1.9最新版漏洞集合
    java代码审计文章集合
  • 原文地址:https://www.cnblogs.com/GuoLianSheng/p/13223616.html
Copyright © 2011-2022 走看看