我需要在C#中使用7zip。沒有控制檯,只用7zSharp.dll? +我發現這裏的一些數據在C#中提取7zip代碼
http://7zsharp.codeplex.com/releases/view/10305,
,但我不知道如何使用它( - 我可以創建.BAT(.CMD)文件,但我需要throught dll文件) 正是:我需要用鍵提取.7z文件)
我需要在C#中使用7zip。沒有控制檯,只用7zSharp.dll? +我發現這裏的一些數據在C#中提取7zip代碼
http://7zsharp.codeplex.com/releases/view/10305,
,但我不知道如何使用它( - 我可以創建.BAT(.CMD)文件,但我需要throught dll文件) 正是:我需要用鍵提取.7z文件)
它看起來不像這個庫支持加密文件。沒有方法將鍵作爲參數。
...以及如何使用密鑰提取.7z文件? –
沒有這個lib ...你可以使用System.Diagnostics來啓動一個控制檯進程,但看到你不想這麼做...開始閱讀SDK :) –
7zSharp庫似乎不支持密碼作爲輸入,只是一個zip文件。
該庫只是調用7zip的.exe文件,因此您可以禁用源代碼並將其更改爲接受密碼參數,然後將其傳遞給可執行文件。
是的,這很好,我只是解釋瞭如何你可以做到這一點。我不會爲你寫代碼。 – CodeCaster
我不需要你的代碼!我能做到!感謝您的幫助! –
7zip的作者提供了LZMA SDK和良好的文檔,應該能夠實現你想要的。 SDK包含能夠壓縮/解壓縮的C#代碼。
另一種選擇是使用類似C# (.NET) Interface for 7-Zip Archive DLLs
UPDATE: 另一個用戶在這裏問了一個類似的問題:How do I create 7-Zip archives with .NET?答案有幾個我所提供的相同環節多一些的。
下載standalone console version from 7zip.com並將其添加到您的項目中。
你需要這些3個文件的項目補充說:
不要忘了複製說輸出目錄中的首選項。
提取檔案:
public void ExtractFile(string sourceArchive, string destination)
{
string zPath = "7za.exe"; //add to proj and set CopyToOuputDir
try
{
ProcessStartInfo pro = new ProcessStartInfo();
pro.WindowStyle = ProcessWindowStyle.Hidden;
pro.FileName = zPath;
pro.Arguments = string.Format("x \"{0}\" -y -o\"{1}\"", sourceArchive, destination);
Process x = Process.Start(pro);
x.WaitForExit();
}
catch (System.Exception Ex) {
//handle error
}
}
創建存檔:
public void CreateZip(string sourceName, string targetArchive)
{
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = "7za.exe";
p.Arguments = string.Format("a -tgzip \"{0}\" \"{1}\" -mx=9", targetArchive, sourceName);
p.WindowStyle = ProcessWindowStyle.Hidden;
Process x = Process.Start(p);
x.WaitForExit();
}
你是否已經嘗試過[DotNetZip(http://dotnetzip.codeplex.com/)? – Oliver
這是否支持7z? – CodesInChaos
http://dotnetzip.codeplex.com/workitem/14034 –