2011-11-03 7 views
5

Ho bisogno di usare 7zip in C#. Senza console, solo con 7zSharp.dll? + Trovo alcuni dati quiestratto 7zip nel codice C#

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

ma non so come usarlo (- ho potuto creare (cmd) file .bat, ma ho bisogno del file dll throught) Esattamente: Ho bisogno di estrarre il file .7z con la chiave)

+0

Avete già provato [DotNetZip] (http://dotnetzip.codeplex.com/)? – Oliver

+1

Supporta 7z? – CodesInChaos

+0

http://dotnetzip.codeplex.com/workitem/14034 –

risposta

0

Non sembra che questa libreria supporti i file crittografati. Nessun metodo accetta una chiave come parametro.

+0

... e come posso estrarre il file .7z con la chiave? –

+0

non con questa lib ... Potresti semplicemente usare System.Diagnostics per avviare un processo di console, ma visto che non vuoi farlo ... Inizia a leggere l'SDK :) –

0

La libreria 7zSharp non sembra supportare la password come input, solo un file zip.

La libreria richiama semplicemente l'exe di 7zip, in modo da poter scaricare il codice sorgente e modificarlo per accettare un parametro password che si passa quindi all'eseguibile.

+1

Sì, è grandioso, ho appena spiegato come potresti farlo. Non scriverò il codice per te. – CodeCaster

+0

Non ho bisogno del codice da te! Posso farlo! Grazie per l'aiuto! –

3

Gli autori di 7zip forniscono lo LZMA SDK e una buona documentazione che dovrebbe essere in grado di ottenere ciò che si desidera. L'SDK include il codice C# in grado di compressione/decompressione.

Un'altra opzione sarebbe quella di utilizzare un qualcosa come C# (.NET) Interface for 7-Zip Archive DLLs

UPDATE: Un altro utente ha fatto una domanda simile qui: How do I create 7-Zip archives with .NET? La risposta ha molti degli stessi link che ho fornito e un paio di più.

5

Scaricare lo standalone console version from 7zip.com e aggiungerlo al progetto.

avete bisogno di quei 3 file aggiunti al progetto:

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

Non dimenticare di dire Copia uscita Directory nelle sue preferenze.

estratto un archivio:

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 
     } 
    } 

creare un archivio:

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(); 
}