7z командная строка для сжатия папок


Я пытаюсь zip / 7z папки с помощью командной строки 7zG.exe. Код, который у меня есть, работает для файлов, но не для папок. Не мог бы кто-нибудь показать мне правильный способ сжатия папок с помощью командной строки 7z? Вот пример кода, который работает только для файлов. Всякий раз, когда я пытаюсь запустить этот код, 7zip показывает messagebox, говорящий "недопустимый параметр"

string sourceName = "FolderFolder1";
string targetName = "Example.gz";

// 1
// Initialize process information.
//
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = "7zG.exe";

// 2
// Use 7-zip
// specify a=archive and -tgzip=gzip
// and then target file in quotes followed by source file in quotes
//
p.Arguments = "a -tgzip "" + targetName + "" "" + sourceName + "" -mx=9";
p.WindowStyle = ProcessWindowStyle.Hidden;

// 3.
// Start process and wait for it to exit
//
Process x = Process.Start(p);
x.WaitForExit();
1 4

1 ответ:

Как указано в разделе комментариев, Вы должны использовать 7za.exe

Эта Ссылка дает вам полный пример строки

Ваш код будет выглядеть следующим образом:

string sourceName = "Folder\Folder1";
string targetName = "Example.gz";

ProcessStartInfo p = new ProcessStartInfo();
//first change
p.FileName = "7za.exe"; 
//second change
p.Arguments = "a -tzip \"" + targetName + "\" \"" + sourceName + "\" -mx=9"; 
p.WindowStyle = ProcessWindowStyle.Hidden;
Process x = Process.Start(p);
x.WaitForExit();