欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#解壓文件的實例方法

 更新時間:2013年05月06日 10:16:46   作者:  
該方法適應(yīng)應(yīng)用桌面快捷鍵壓縮的文件,zip,rar格式的文件進行解壓!
復制代碼 代碼如下:

#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())// 開啟一個進程 執(zhí)行解壓工作
            {
          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

相關(guān)文章

最新評論