2013-11-28 2 views
0

Я хочу сжать папку в файл с расширением .7z, с 7zip.Как сжать папку с 7Zip в C#?

Я хотел бы знать, как бы я это сделать, потому что я не уверен (поэтому я спрашиваю.)

Это в C#.

Полезные ссылки на страницы или примеры кода.

+1

Возможный дубликат этого вопроса, http://stackoverflow.com/questions/7646328/how-to-use-the-7z-sdk-to-compress-and-decompress-a-file –

+0

Для простое решение, используйте ['Process.Start'] (http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start (v = vs.110) .aspx) (для этого требуется 7zip для быть установленным). В противном случае см. [LZMA SDK] (http://www.7-zip.org/sdk.html) –

+0

Я хочу просто сжать его в файл .7z, вот и все. – user3026440

ответ

0

Я согласен, что это дубликат, но я использовал демо от этого CodeProject раньше, и это очень полезно:

http://www.codeproject.com/Articles/27148/C-NET-Interface-for-7-Zip-Archive-DLLs

Прокрутка вниз страницы для демонстрации и удачи!

+0

Прошу прощения, если это дубликат. Объект поиска не работал. Хотя, я проверю это. – user3026440

0

код застегнуть или расстегнуть молнию файл, используя 7zip

этот код используется, чтобы пронестись в папку

public void CreateZipFolder(string sourceName, string targetName) 
     { 
      // this code use for zip a folder 
      sourceName = @"d:\Data Files"; // folder to be zip 
      targetName = @"d:\Data Files.zip"; // zip name you can change 
      ProcessStartInfo p = new ProcessStartInfo(); 
      p.FileName = @"D:\7-Zip\7z.exe"; 
      p.Arguments = "a -t7z \"" + targetName + "\" \"" + sourceName + "\" -mx=9"; 
      p.WindowStyle = ProcessWindowStyle.Hidden; 
      Process x = Process.Start(p); 
      x.WaitForExit(); 
     } 

Этот код используется, чтобы пронестись файл

public void CreateZip(string sourceName, string targetName) 
     { 
      // file name to be zip , you must provide file name with extension 
      sourceName = @"d:\ipmsg.log"; 
      // targeted file , you can change file name 
      targetName = @"d:\ipmsg.zip"; 

      ProcessStartInfo p = new ProcessStartInfo(); 
      p.FileName = @"D:\7-Zip\7z.exe"; 
      p.Arguments = "a -tgzip \"" + targetName + "\" \"" + sourceName + "\" -mx=9"; 
      p.WindowStyle = ProcessWindowStyle.Hidden; 
      Process x = Process.Start(p); 
      x.WaitForExit(); 

     } 

этот код используется для разморозки

public void ExtractFile(string source, string destination) 
     { 
      // If the directory doesn't exist, create it. 
      if (!Directory.Exists(destination)) 
       Directory.CreateDirectory(destination); 

      string zPath = @"D:\7-Zip\7zG.exe"; 
      try 
      { 
       ProcessStartInfo pro = new ProcessStartInfo(); 
       pro.WindowStyle = ProcessWindowStyle.Hidden; 
       pro.FileName = zPath; 
       pro.Arguments = "x \"" + source + "\" -o" + destination; 
       Process x = Process.Start(pro); 
       x.WaitForExit(); 
      } 
      catch (System.Exception Ex) { } 
     } 

image is used to know files in 7zip folder

0

Здесь fileDirPath - это путь к моей папке, в которой есть все мои файлы, а preferredPath - это путь, где я хочу, чтобы мой .zip-файл был.

например: var fileDirePath = @ "C: \ Temp"; var prefferedPath = @ "C: \ Output \ results.zip";

private void CreateZipFile(string fileDirPath, string prefferedPath) 
    { 
     ProcessStartInfo p = new ProcessStartInfo(); 
     p.FileName = @"C:\Program Files\7-Zip\7z.exe"; 
     p.Arguments = "a \"" + prefferedPath + "\" \"" + fileDirPath + "\""; 
     p.WindowStyle = ProcessWindowStyle.Hidden; 
     Process x = Process.Start(p); 
     x.WaitForExit(); 
     return; 
    } 
Смежные вопросы