当前位置:  编程技术>.net/c#/asp.net

c#解压文件的实例方法

    来源: 互联网  发布时间:2014-10-19

    本文导语:  代码如下:#region 解压 文件 zip 格式 rar 格式        ///         ///解压文件        ///         /// 解压前的文件路径(绝对路径)        /// 解压后的文件目录(绝对路径)        public static void UnpackFile(string...

代码如下:

#region 解压 文件 zip 格式 rar 格式
        ///
        ///解压文件
        ///
        /// 解压前的文件路径(绝对路径)
        /// 解压后的文件目录(绝对路径)
        public static void UnpackFile(string fileFromUnZip, string fileToUnZip)
        {
            //获取压缩类型
            string unType = fileFromUnZip.Substring(fileFromUnZip.LastIndexOf(".") + 1, 3).ToLower();
            switch (unType)
            {
                case "rar":
                    UnRar(fileFromUnZip, fileToUnZip);
                    break;
                case "zip":
                    UnZip(fileFromUnZip, fileToUnZip);
                    break;
            }
        }
        //解压rar格式的文件
        private static void UnRar(string fileFromUnZip, string fileToUnZip)
        {
            using (Process Process1 = new Process())// 开启一个进程 执行解压工作
            {
          string ServerDir = ConfigurationManager.AppSettings["UnpackFile"].ToString();//rar工具的安装路径   必须要安装 WinRAR     //例于:C:Program Files (x86)WinRARRAR.exe
                Process1.StartInfo.UseShellExecute = false;
                Process1.StartInfo.RedirectStandardInput = true;
                Process1.StartInfo.RedirectStandardOutput = true;
                Process1.StartInfo.RedirectStandardError = true;
                Process1.StartInfo.CreateNoWindow = true;
                Process1.StartInfo.FileName = ServerDir;
                Process1.StartInfo.Arguments = " x -inul -y " + fileFromUnZip + " " + fileToUnZip;
                Process1.Start();//解压开始 
                Process1.WaitForExit();
                Process1.Close();
            }
        }
        // 解压zip 文件
        public static void UnZip(string fileFromUnZip, string fileToUnZip)
        {
            ZipInputStream inputStream = new ZipInputStream(File.OpenRead(fileFromUnZip));
            ZipEntry theEntry;
            while ((theEntry = inputStream.GetNextEntry()) != null)
            {
                fileToUnZip += "/";
                string fileName = Path.GetFileName(theEntry.Name);
                string path = Path.GetDirectoryName(fileToUnZip) + "/";
                // Directory.CreateDirectory(path);//生成解压目录
                if (fileName != String.Empty)
                {
                    FileStream streamWriter = File.Create(path + fileName);//解压文件到指定的目录
                    int size = 2048;
                    byte[] data = new byte[2048];
                    while (true)
                    {
                        size = inputStream.Read(data, 0, data.Length);
                        if (size > 0)
                        {
                            streamWriter.Write(data, 0, size);
                        }
                        else
                        {
                            break;
                        }
                    }
                    streamWriter.Close();
                }
            }
            inputStream.Close();
        }
        #endregion

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • tar.xz如何解压:linux和windows下tar.xz解压命令介绍
  • linux UNRAR 解压文件怎么不能全部解压
  • Linux_centos_redhat下tar命令解压tgz文件方法
  • linux 下的自解压文件是什么格式,如何判断文件是否为自解压c++或者脚本判断均可
  • 我在RH9.0下解压.rpm后, 怎么看不到解压后的目录啊?
  • php解压文件代码实现php在线解压
  • linux rar命令不能完整解压?
  • 为什么用zlib解压时出错?(内详,来者有分)
  • 下载的 Linux iso 文件 不能在 windows 下解压?
  • tar解压文件的问题。
  • 关于内核自解压的疑问??
  • SSH 远程执行解压tar包
  • 请问如何解压.JAR文件?
  • 在线解压压缩 PclZip
  • 在windows下怎样解压linux-2.4.18.tar.gz
  • firefox 解压后不能运行
  • 压缩 解压
  • freebsd 解压tomat
  • 急急急!tar怎么解压制定的文件
  • 如何将rpm解压到当前目录? 多谢!
  • tar解压重命名


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3