C#挪用WinRar履行rar、zip緊縮的辦法。本站提示廣大學習愛好者:(C#挪用WinRar履行rar、zip緊縮的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#挪用WinRar履行rar、zip緊縮的辦法正文
本文實例講述了C#挪用WinRar履行rar、zip緊縮的辦法。分享給年夜家供年夜家參考。詳細以下:
斷定體系能否裝置了winrar
/// <summary>
/// 驗證WinRar能否裝置。
/// </summary>
/// <returns>true:已裝置,false:未裝置</returns>
private static bool ExistsRar(out String winRarPath)
{
winRarPath = String.Empty;
//經由過程Regedit(注冊表)找到WinRar文件
var registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WinRAR.exe");
if (registryKey == null) return false;//未裝置
//registryKey = theReg;可以直接前往Registry對象供會見操作
winRarPath = registryKey.GetValue("").ToString();
//這裡為勤儉資本,直接前往途徑,橫豎上面也沒用到
registryKey.Close();//封閉注冊表
return !String.IsNullOrEmpty(winRarPath);
}
緊縮
/// <summary>
/// 生成Zip
/// </summary>
/// <param name="path">文件夾途徑</param>
/// <param name="rarPath">生成緊縮文件的途徑</param>
/// <param name="rarName">生成緊縮文件的文件名</param>
public static void CompressRar(String path, String rarPath, String rarName)
{
try
{
String winRarPath = null;
if (!ExistsRar(out winRarPath)) return;
//驗證WinRar能否裝置。
var pathInfo = String.Format("a -afzip -m0 -ep1 \"{0}\" \"{1}\"", rarName, path);
#region WinRar 用到的敕令正文
//[a] 添加到緊縮文件
//afzip 履行zip緊縮方法,便利用戶在分歧情況下應用。
//(撤消該參數則履行rar緊縮)
//-m0 存儲 添加到緊縮文件時不緊縮文件。共6個級別【0-5】,值越年夜後果越好,也越慢
//ep1 依稱號消除主目次(生成的緊縮文件不會湧現不用要的層級)
//r 修復緊縮檔案
//t 測試緊縮檔案內的文件
//as 同步緊縮檔案內容
//-p 給緊縮文件加暗碼方法為:-p123456
#endregion
//打包文件寄存目次
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = winRarPath,//履行的文件名
Arguments = pathInfo,//須要履行的敕令
UseShellExecute = false,//應用Shell履行
WindowStyle = ProcessWindowStyle.Hidden,//隱蔽窗體
WorkingDirectory = rarPath,//rar 寄存地位
CreateNoWindow = false,//不顯示窗體
},
};
process.Start();//開端履行
process.WaitForExit();//期待完成並加入
process.Close();//封閉挪用 cmd 的甚麼甚麼
}
catch (Exception ex)
{
throw ex;
}
}
解壓
/// <summary>
/// 解壓
/// </summary>
/// <param name="unRarPath">文件夾途徑</param>
/// <param name="rarPath">緊縮文件的途徑</param>
/// <param name="rarName">緊縮文件的文件名</param>
/// <returns></returns>
public static String UnCompressRar(String unRarPath, String rarPath, String rarName)
{
try
{
String winRarPath = null;
if (!ExistsRar(out winRarPath)) return "";
//驗證WinRar能否裝置。
if (Directory.Exists(unRarPath) == false)
{
Directory.CreateDirectory(unRarPath);
}
var pathInfo = "x " + rarName + " " + unRarPath + " -y";
var process = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = winRarPath,//履行的文件名
Arguments = pathInfo,//須要履行的敕令
UseShellExecute = false,//應用Shell履行
WindowStyle = ProcessWindowStyle.Hidden,//隱蔽窗體
WorkingDirectory = rarPath,//rar 寄存地位
CreateNoWindow = false,//不顯示窗體
},
};
process.Start();//開端履行
process.WaitForExit();//期待完成並加入
process.Close();//封閉挪用 cmd 的甚麼甚麼
}
catch (Exception ex)
{
throw ex;
}
return unRarPath;
}
願望本文所述對年夜家的C#法式設計有所贊助。