c#解压文件的实例方法

代码如下:

#region 解压 文件 zip 格式 rar 格式
        /// <summary>
        ///解压文件
        /// </summary>
        /// <param name="fileFromUnZip">解压前的文件路径(绝对路径)</param>
        /// <param name="fileToUnZip">解压后的文件目录(绝对路径)</param>
        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)\WinRAR\RAR.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

(0)

相关推荐

  • C#实现解压GZip文件的方法

    本文实例讲述了C#实现解压GZip文件的方法.分享给大家供大家参考.具体实现方法如下: public void ungzip(string path, string decomPath, bool overwrite) { //for overwriting purposes if (File.Exists(decomPath)) { if (overwrite) { File.Delete(decomPath); } else { throw new IOException("The deco

  • C#文件流进行压缩和解压缩的方法

    本文实例讲述了C#文件流进行压缩和解压缩的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.IO.Compression; using System.Linq; using System.Text; usi

  • C#使用GZipStream解压缩数据文件的方法

    本文实例讲述了C#使用GZipStream解压缩数据文件的方法.分享给大家供大家参考.具体分析如下: GZipStream用于从一个流读取数据写入到另一个流,GZipStream不能写入到其它的资源,比如文件或者内存,只能从流到流. GZipStream使用的一般流程如下: 打开一个现有的文件  打开/创建输出文件  创建GZipStream对象  逐字节读源文件,并把它传递到GZipStream  使用GZipStream写入到输出文件流 String sourcefilename = FIL

  • asp.net C#实现解压缩文件的方法

    本文实例讲述了asp.net C#实现解压缩文件的方法.一共给大家介绍了三段代码,一个是简单的解压缩单个zip文件,后一个可以解压批量的大量的但需要调用ICSharpCode.SharpZipLib.dll类了,最后一个比较实例可压缩也可以解压缩了分享给大家供大家参考.具体如下: 解压缩单个文件: 复制代码 代码如下: using System.IO; using System.IO.Compression; string sourceFile=@"D:2.zip"; string d

  • c#调用winrar解压缩文件代码分享

    复制代码 代码如下: using Microsoft.Win32;using System.Diagnostics;压缩string the_rar;RegistryKey the_Reg;object the_Obj;string the_Info;ProcessStartInfo the_StartInfo;Process the_Process;try{the_Reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\S

  • C#实现的文件压缩和解压缩类

    本文实例讲述了C#实现的文件压缩和解压缩类.分享给大家供大家参考.具体分析如下: 这个C#代码包含了几个类,封装了文件压缩和解压缩常用的方法,包括直接通过代码进行压缩,也有调用winrar对文件进行压缩的 using System; using System.IO; using System.Diagnostics; using Microsoft.Win32; using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZip

  • C#自定义字符串压缩和解压缩的方法

    本文实例讲述了C#自定义字符串压缩和解压缩的方法.分享给大家供大家参考.具体如下: class ZipLib { public static string Zip(string value) { //Transform string into byte[] byte[] byteArray = new byte[value.Length]; int indexBA = 0; foreach (char item in value.ToCharArray()) { byteArray[indexB

  • c#解压文件的实例方法

    复制代码 代码如下: #region 解压 文件 zip 格式 rar 格式        /// <summary>        ///解压文件        /// </summary>        /// <param name="fileFromUnZip">解压前的文件路径(绝对路径)</param>        /// <param name="fileToUnZip">解压后的文件目录(

  • Java自动解压文件实例代码

    复制代码 代码如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public cl

  • Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.util.zip.*; import javax.swing.*; //从压缩包中提取文件 public class ZipExtractDemo extends JFrame{ JFileChooser fileChooser; //文件选择器 JTextField jtfTarg

  • Linux解压文件到指定目录的方法

    本文介绍了Linux解压文件到指定目录的方法,分享给大家,具体如下: tar在Linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数: -c :create 建立压缩档案的参数: -x : 解压缩压缩档案的参数: -z : 是否需要用gzip压缩: -v: 压缩的过程中显示档案: -f: 置顶文档名,在f后面立即接文件名,不能再加参数 举例: 一,将整个/home/www/images 目录下的文件全部打包为 /home/www/images.tar

  • Python实现多级目录压缩与解压文件的方法

    本文实例讲述了Python实现多级目录压缩与解压文件的方法.分享给大家供大家参考,具体如下: 咱向来就是拿来主意,也发个东西供同行"拿来"使用吧 咱信奉的就是少量的代码完成大量的工作,虽然代码不多,但还是要用大脑的.发出来供大家参考 功能: 支持中文路径,支持多级目录 支持跨平台,在linux和window下都可直接使用 压缩的多态性 压缩包不带级父文件夹目录压缩 压缩包带父级文件夹目录 不指定目标文件与路径压缩 指定压缩包名称不指定路径压缩 还是看代码吧 #coding:utf-8

  • 在vue.js中使用JSZip实现在前端解压文件的方法

    1. 在vue文件的html中引入element的上传控件,代码如下: <div> <el-upload action="//jsonplaceholder.typicode.com/posts/" :before-upload="handleBefore"> <el-button size="small" type="primary">点击上传</el-button> <

  • 详解C#压缩、解压文件夹/文件(带密码)

    前言 今天梳理一下项目中用到的压缩.解压文件夹或文件的方法,发现因为需求不同,已经用了好几个不同组件.今天就好好整理记录下,别下次遇到需求又重头开始了. DotNetZip DotNetZip是一个开源的免费类库,主要提供了快速操作zip文件的工具集,VB.C#任何.Net语言都可以通过它创建.解压缩zip文件.我使用该类库最主要的目的还是因为它可以创建带密码保护的压缩文件. 只有设置了zip.Password = "password"之后,被压缩的文件才会有密码保护 /// <

  • C#使用SharpZipLib压缩解压文件

    一.介绍 SharpZipLib是一个完全由C#编写的ZIP,GZIP,Tar和BZIP2 Library,可以方便的支持这几种格式的压缩和解压缩. https://github.com/icsharpcode/SharpZipLib 下载解压SharpZipLib ,将 ICSharpCode.SharpZipLib .dll 添加至项目引用中. 二.操作指南 1.1  创建zip文件,并添加文件: using (ZipFile zip = ZipFile.Create(@"E:\test.z

  • PHP Zip解压 文件在线解压缩的函数代码

    复制代码 代码如下: /********************** *@file - path to zip file *@destination - destination directory for unzipped files */ function unzip_file($file, $destination){ // create object $zip = new ZipArchive() ; // open archive if ($zip->open($file) !== TR

  • php解压文件代码实现php在线解压

    复制代码 代码如下: <?php$zip = zip_open("moooredale.zip");  if ($zip) {   while ($zip_entry = zip_read($zip)) {   $fp = fopen(zip_entry_name($zip_entry), "w");   if (zip_entry_open($zip, $zip_entry, "r")) {   $buf = zip_entry_read

随机推荐