用C#實現RAR檔案的自動解壓縮

iDotNetSpace發表於2008-09-05
如果我們用的是託管伺服器通常需要實現檔案上傳下載功能(替代FTP功能進行遠端檔案管理)已提高檔案處理的效率下面的程式程式碼實現了對檔案的自動解壓處理
  ///
  /// 解壓縮指定的rar檔案。
  ///

  /// rar檔案(絕對路徑)。
  /// 解壓縮儲存的目錄。
  /// 解壓縮後刪除rar檔案。
  public void DecompressRAR(string rarFileToDecompress, string directoryToSave, bool deleteRarFile)
  {
   string winrarExe = Server.MapPath(@"../EnterpriseCustom/WinRaR.exe");//需要在指定路徑下放入winara.exe的可執行檔案在安裝目錄下可以找到這個檔案
   if(new FileInfo(winrarExe).Exists)
   {
    directoryToSave = CheckDirectoryName(directoryToSave);
    try
    {

     Process  p = new  Process(); 
     // 需要啟動的程式名
     p.StartInfo.FileName = winrarExe ; 
     // 引數
     string arguments = @"x -inul -y -o+";
     arguments += " " + rarFileToDecompress + " " + directoryToSave;

     p.StartInfo.Arguments = arguments;

     p.Start();//啟動
     while(!p.HasExited)
     {
     }
     p.WaitForExit();
    }
    catch(Exception ee)
    {
     throw new Exception("上傳的壓縮檔案在解壓縮的過程中出現了錯誤!
請聯絡管理員檢查您是否有對相應目錄的寫入許可權!");
    }

    if (deleteRarFile)
    {
     File.Delete(rarFileToDecompress);
    }
   }
   else
   {
    throw new Exception("系統伺服器上缺少必須的Winrar.exe檔案,不能完成相應操作請聯絡管理員!");

   }
  }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-442009/,如需轉載,請註明出處,否則將追究法律責任。

相關文章