如果我們用的是托管服務器通常需要實現文件上傳下載功能(替代FTP功能進行遠程文件管理)已提高文件處理的效率下面的程序代碼實現了對文件的自動解壓處理
/// <summary>
/// 解壓縮指定的rar文件。
/// </summary>
/// <param name="rarFileToDecompress">rar文件(絕對路徑)。</param>
/// <param name="directoryToSave">解壓縮保存的目錄。</param>
/// <param name="deleteRarFile">解壓縮後刪除rar文件。</param>
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("上傳的壓縮文件在解壓縮的過程中出現了錯誤!<BR>請聯系管理員檢查您是否有對相應目錄的寫入權限!");
}
if (deleteRarFile)
{
File.Delete(rarFileToDecompress);
}
}
else
{
throw new Exception("系統服務器上缺少必須的Winrar.exe文件,不能完成相應操作請聯系管理員!");
}
}