皮皮网
皮皮网

【samp7f源码】【女士吃溯源码燕窝团购】【php程序员接私活源码】sharpziplib 源码

来源:移码到源码 发表时间:2024-12-22 12:12:13

1.c#压缩解压 文件夹

sharpziplib 源码

c#压缩解压 文件夹

       我在做项目的时候需要将文件进行压缩和解压缩,于是就从pression

        foreach (string file in filenames)

        {

        //打开压缩文件

        FileStream fs = File.OpenRead(file);

        byte[] buffer = new byte[fs.Length];

        fs.Read(buffer, 0, buffer.Length);

        ZipEntry entry = new ZipEntry(file);

        entry.DateTime = DateTime.Now;

        // set Size and the crc, because the information

        // about the size and crc should be stored in the header

        // if it is not set it is automatically written in the footer.

        // (in this case size == crc == -1 in the header)

        // Some ZIP programs have problems with zip files that don't store

        // the size and crc in the header.

        entry.Size = fs.Length;

        fs.Close();

        crc.Reset();

        crc.Update(buffer);

        entry.Crc = crc.Value;

        s.PutNextEntry(entry);

        s.Write(buffer, 0, buffer.Length);

        }

        s.Finish();

        s.Close();

        }

        }

       }

       现在再来看看解压文件类的源码

        /// <summary>

        /// 解压文件

        /// </summary>

       using System;

       using System.Text;

       using System.Collections;

       using System.IO;

       using System.Diagnostics;

       using System.Runtime.Serialization.Formatters.Binary;

       using System.Data;

       using ICSharpCode.SharpZipLib.BZip2;

       using ICSharpCode.SharpZipLib.Zip;

       using ICSharpCode.SharpZipLib.Zip.Compression;

       using ICSharpCode.SharpZipLib.Zip.Compression.Streams;

       using ICSharpCode.SharpZipLib.GZip;

       namespace DeCompression

       {

        public class UnZipClass

        {

        public void UnZip(string[] args)

        {

        ZipInputStream s = new ZipInputStream(File.OpenRead(args[0]));

        ZipEntry theEntry;

        while ((theEntry = s.GetNextEntry()) != null)

        {

        string directoryName = Path.GetDirectoryName(args[1]);

        string fileName = Path.GetFileName(theEntry.Name);

        //生成解压目录

        Directory.CreateDirectory(directoryName);

        if (fileName != String.Empty)

        {

        //解压文件到指定的目录

        FileStream streamWriter = File.Create(args[1]+theEntry.Name);

        int size = ;

        byte[] data = new byte[];

        while (true)

        {

        size = s.Read(data, 0, data.Length);

        if (size > 0)

        {

        streamWriter.Write(data, 0, size);

        }

        else

        {

        break;

        }

        }

        streamWriter.Close();

        }

        }

        s.Close();

        }

        }

       }

        有了压缩和解压缩的类以后,就要在窗体里调用了。samp7f源码怎么?是新手,不会调用?Ok,女士吃溯源码燕窝团购接着往下看如何在窗体里调用。

        首先在窗体里放置两个命令按钮(不要告诉我你不会放啊~),php程序员接私活源码然后编写以下源码

       /// <summary>

        /// 调用源码

        /// </summary>

        private void button2_Click_1(object sender, System.EventArgs e)

        {

        string []FileProperties=new string[2];

        FileProperties[0]="C:\\unzipped\\";//待压缩文件目录

        FileProperties[1]="C:\\zip\\a.zip"; //压缩后的目标文件

        ZipClass Zc=new ZipClass();

        Zc.ZipFileMain(FileProperties);

        }

        private void button2_Click(object sender, System.EventArgs e)

        {

        string []FileProperties=new string[2];

        FileProperties[0]="C:\\zip\\test.zip";//待解压的文件

        FileProperties[1]="C:\\unzipped\\";//解压后放置的目标目录

        UnZipClass UnZc=new UnZipClass();

        UnZc.UnZip(FileProperties);

        }

        好了,到此为止,如何压缩和解压缩的类都已经完成了,需要的朋友直接拿走调吧。

相关栏目:休闲