2016-02-29 9 views
-1

У меня есть несколько путь к папке:Как я могу архивировать несколько папок в один ZIP-файл, используя 7zip C#?

SourceFilePath="C:\Users\Anuj\Desktop\PSI" 
SourceFilePath1="C:\Users\Anuj\Desktop\Google" 
SourceFilePath2="C:\Users\Anuj\Desktop\Isp" 

Я хочу, чтобы сжать эти пути с помощью кода 7zip командной строки вместе с Zip Password.

Edit:

 //Declare and instantiate a new process component. 
        System.Diagnostics.Process proc; 
        proc = new System.Diagnostics.Process(); 

        //Do not receive an event when the process exits. 
        proc.EnableRaisingEvents = false; 


        //The "/C" Tells Windows to Run The Command then Terminate 
        string strCmdLine; 
        strCmdLine = "/C cd c:\\Program Files\\7-Zip\\ "; 
        strCmdLine += " & 7z a "// here i need help 

        System.Diagnostics.Process.Start("CMD.exe", strCmdLine); 

        proc.Close(); 

Что я на самом деле:

var MultiplePathFolders=SourceFilePath+SourceFilePath1+SourceFilePath2 
     System.Diagnostics.Process proc; 
    proc = new System.Diagnostics.Process(); 
    proc.EnableRaisingEvents = false; 
    string strCmdLine; 
    strCmdLine = "/C cd c:\\Program Files\\7-Zip\\ "; 

     strCmdLine += " & 7z a " + SyncPath + "\\" + ZipName + "-FileName.7z " + MultiplePathFolders + " -p" + DecryptedPassword + ""; 

    System.Diagnostics.Process.Start("CMD.exe", strCmdLine); 

    proc.Close(); 
+0

ты пытался .. Http: //www.dotnetperls. com/7-zip – Moumit

+1

Мы здесь, чтобы решить ошибки в вашем коде. Мы не являемся «бесплатным написанием кода». Покажите нам, что вы пробовали, и тогда мы сможем вам помочь. – SiD

+0

То же самое здесь. ОК, я даю то, что я пробовал до сих пор. –

ответ

0

Вы можете сделать так:

string yourPassWord = "Hello"; 
string yourZipPath="D:\\my7z.7z";      // Your 7z file path 
//string yourZipPath="D:\\myZip.zip";     // Or your zip file path 
System.Diagnostics.Process proc; 
proc = new System.Diagnostics.Process(); 

proc.EnableRaisingEvents = false; 

List<string> foldersAndFiles = new List<string>(); 
foldersAndFiles.Add("D:\\F1");      // Add folder 
foldersAndFiles.Add("D:\\F2");      // Add folder 
foldersAndFiles.Add("D:\\file.txt");     // Add file 

string cmd = "a -tzip -p\"" + yourPassWord + "\" \"" + your7zPath + "\""; 
foreach(var item in foldersAndFiles) 
{ 
    cmd += " \"" + item + "\""; 
} 

proc.StartInfo.FileName 
    = "c:\\Program Files\\7-Zip\\7z.exe";   // Be sure this file exist. 
proc.StartInfo.Arguments = cmd; 
proc.Start(); 

proc.Close(); 
+0

Это работает. Но я нашел myselft лучше, чем это. thanx Sakura :) –

+0

У этого есть много способов сделать это. Выберите то, что вы предпочитаете. – Sakura