zoukankan      html  css  js  c++  java
  • 摘:C#压缩文件

    【【【【C#压缩文件】】】】
    方法1:
        //【filepath想要压缩文件的地址】
        //【zippath输出压缩文件的地址】
        private void GetFileToZip(string filepath,string zippath)
        {
    
            FileStream fs = File.OpenRead(filepath);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                fs.Close();
    
                FileStream ZipFile = File.Create(zippath);
                ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
                ZipEntry ZipEntry = new ZipEntry(输出的文件名称);
                ZipStream.PutNextEntry(ZipEntry);
                ZipStream.SetLevel(6);
    
                ZipStream.Write(buffer, 0, buffer.Length);
                ZipStream.Finish();
                ZipStream.Close();
        }
    方法2:
         private void FileToZip(string path,string address) 
            {
                string name = openFileDialog1.FileName.Substring(openFileDialog1.FileName.LastIndexOf("\")+1);
                FileStream StreamToZip = new FileStream(path, FileMode.Open, FileAccess.Read);
                FileStream ZipFile = File.Create(address);
                ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
                //压缩文件
                ZipEntry ZipEntry = new ZipEntry(name);
                ZipStream.PutNextEntry(ZipEntry);
                ZipStream.SetLevel(6);                                       
                byte[] buffer = new byte[StreamToZip.Length];
                StreamToZip.Read(buffer, 0, Convert.ToInt32(StreamToZip.Length));
                ZipStream.Write(buffer, 0, Convert.ToInt32(StreamToZip.Length));
                ZipStream.Finish();
                ZipStream.Close();
                StreamToZip.Close();
    
            }
    【【【【【【C#解压文件】】】】】】
        private void ZipToFile(string path, string addres)
            {
                ZipInputStream s = new ZipInputStream(File.OpenRead(path));
                ZipEntry fileEntry; 
                while ((fileEntry = s.GetNextEntry()) != null)
                {
                    string filename = Path.GetFileName(fileEntry.Name);
                    if (filename != "")
                    {
                        filename = addres + "\" + filename;
                        FileStream streamWriter = File.Create(filename);
                        int size = 2048;
                        byte[] buffer = new byte[s.length];
    
                        size = s.Read(buffer, 0, size);
                        streamWriter.Write(buffer, 0, size);
                        streamWriter.Close();                   
                    }
                }
                s.Close();
            }
    【【【【【【C#压缩目录】】】】】】
    方法1:
        //【arg[0]要压缩的目录】
        //【arg[1]输出的压缩文件】
           private void DirectoryToZip(string path, string address)
               {
                    //获取当前文件夹中所有的文件
                    string[] filenames = Directory.GetFiles(path);  
                    Crc32 crc = new Crc32();
                    //创建输出文件(ZIP格式的文件)
                    ZipOutputStream zos = new ZipOutputStream(File.Create(address));
                    zos.SetLevel(6);
                    //遍历所有的文件
                    foreach (string name in filenames)
                    {
                        FileStream fs = File.OpenRead(name);
                        byte[] buffer = new byte[fs.Length];
                       //读取文件
                        fs.Read(buffer, 0, Convert.ToInt32(fs.Length));
                        //获取文件的文件名称和后缀名
                        string file = Path.GetFileName(name);
                        //输出文件的名称
                        ZipEntry entry = new ZipEntry(file);                
                        crc.Reset();
                        crc.Update(buffer);
                        entry.Crc = crc.Value;
                        zos.PutNextEntry(entry);
                        zos.Write(buffer, 0, Convert.ToInt32(fs.Length));
                        fs.Close();
                    }
                    zos.Finish();
                    zos.Close();
                 }
    
    
    
    【【【【【【【【C#读取压缩文件(将压缩文件转换为二进制)】】】】】】】】
        private void GetZipToByte(){
            string path = @"C:Documents and SettingsAdministrator桌面文件.rar";
                FileStream fs = new FileStream(path, FileMode.Open);
                bytes = new byte[fs.Length];
                int count = Convert.ToInt32(fs.Length);
                fs.Read(bytes, 0, count);
        }
    【【【【【【【【C#将二进制转换为压缩文件】】】】】】】】
        private void GetByteToZip()
        {
            string path = @"F:dom.rar";//压缩文件的地址
            File.WriteAllBytes(path, bytes);
        }
    
  • 相关阅读:
    jq隐藏页面的一行(循环隐藏10行)
    Button的OnClientClick()事件不起作用?
    Infopath自定义表单实现列表字段联动
    SharePoint 2013的传出电子邮件设置
    codeforces Looksery Cup 2015 D. Haar Features
    codeforces Looksery Cup 2015 H Degenerate Matrix
    poj3321 Apple Tree
    poj1990 MooFest
    poj2155 Matrix
    hdu1556 Color the ball
  • 原文地址:https://www.cnblogs.com/shenchao/p/3725634.html
Copyright © 2011-2022 走看看