извлечь 7zip в коде C # - PullRequest
       55

извлечь 7zip в коде C #

5 голосов
/ 03 ноября 2011

Мне нужно использовать 7zip в C #.Без консоли, только с 7zSharp.dll?+ Я нахожу некоторые данные здесь

http://7zsharp.codeplex.com/releases/view/10305,

, но я не знаю, как их использовать (- я мог бы создать файл .bat (.cmd), но янужен файл dll). Точно: мне нужно извлечь файл .7z с ключом)

Ответы [ 4 ]

14 голосов
/ 11 сентября 2014

Загрузите автономную консольную версию с 7zip.com и добавьте ее в свой проект.

Вам нужны эти 3 файла, добавленные в проект:

  1. 7za.exe
  2. 7za.dll
  3. 7zxa.dll

Не забудьте сказать «Копировать в выходной каталог» в своих настройках.

Извлечь архив:

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();
}
3 голосов
/ 03 ноября 2011

Авторы 7zip предоставляют LZMA SDK и хорошую документацию, которая должна быть в состоянии достичь того, чего вы хотите.SDK включает в себя код C #, способный к сжатию / декомпрессии.

Другой вариант - использовать что-то вроде C # (.NET) интерфейса для 7-Zip-архивов DLL

ОБНОВЛЕНИЕ: Другой пользователь задал подобный вопрос здесь: Как мне создать 7-Zip архивы с .NET? Ответ содержит несколько таких же ссылок, которые я предоставил, и еще несколько.

0 голосов
/ 03 ноября 2011

Библиотека 7zSharp, похоже, не поддерживает ввод пароля, это всего лишь zip-файл.

Библиотека просто вызывает .exe из 7zip, так что вы можете загрузить исходный код и изменить его, чтобы принять параметр пароля, который вы затем передаете в исполняемый файл.

0 голосов
/ 03 ноября 2011

Не похоже, что эта библиотека поддерживает зашифрованные файлы. Ни один метод не принимает ключ в качестве параметра.

...