J'ai installé 7-zip 4.65 sur ma machine dans les fichiers C: \ Program. Je veux l'utiliser en code C# pour compresser un fichier. Le nom du fichier sera fourni dynamiquement par l'utilisateur. Quelqu'un peut-il s'il vous plaît fournir un exemple de code sur la façon d'utiliser 7zip dans le code C#?Exemple de code C# .net pour compresser un fichier en utilisant 7zip
Répondre
Avez-vous essayé cette interface C# pour 7zip: http://www.codeproject.com/KB/DLL/cs_interface_7zip.aspx
[modifier] On dirait que cela a été déjà répondu: Free compression library for C# which supports 7zip (LZMA)
autres bibliothèques:
http://sevenzipsharp.codeplex.com/
http://www.7-zip.org/sdk.html - Sur le site officiel donc sans doute préférable d'utiliser cette
Ou vous pouvez utiliser la bibliothèque zip J # (qui est inclus dans le Framework .Net) un échantillon: http://weblogs.asp.net/jgalloway/archive/2007/10/25/creating-zip-archives-in-net-without-an-external-library-like-sharpziplib.aspx
au lieu de la version binaire dont vous avez besoin le code source. Ceci peut être obtenu en tant que LZMA SDK.
Vous y trouverez un dossier CS
qui contient une implémentation C# de l'algorithme pour les fichiers 7zip.
Je suppose que si vous souhaitez utiliser celui installé que vous avez dans c: \ program files, vous pouvez simplement utiliser System.Diagnostics.Process
pour exécuter des applications en ligne de commande - http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx
paramètres Passing est facile aussi. Il y a beaucoup d'exemples ici - http://www.c-sharpcorner.com/UploadFile/DipalChoksi/ShellCommandsInCS12032005042031AM/ShellCommandsInCS.aspx
beaucoup de réponses données ci-dessus, mais j'utilisé ce code ci-dessous mention zip ou décompressez un fichier en utilisant vous 7zip
devez avoir une application 7zip dans votre système.
public void ExtractFile(string source, string destination)
{
// If the directory doesn't exist, create it.
if (!Directory.Exists(destination))
Directory.CreateDirectory(destination);
string zPath = @"C:\Program Files\7-Zip\7zG.exe";
// change the path and give yours
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) {
//DO logic here
}
}
pour créer un fichier zip
public void CreateZip()
{
string sourceName = @"d:\a\example.txt";
string targetName = @"d:\a\123.zip";
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = @"C:\Program Files\7-Zip\7zG.exe";
p.Arguments = "a -tgzip \"" + targetName + "\" \"" + sourceName + "\" -mx=9";
p.WindowStyle = ProcessWindowStyle.Hidden;
Process x = Process.Start(p);
x.WaitForExit();
}
C'est un projet sur lequel je travaille actuellement. Au début, j'ai téléchargé le SDK LZMA à partir du site 7-zip et j'ai écrit du code en utilisant la bibliothèque C# de Pavlov pour compresser. J'ai bien travaillé! Puis j'ai réalisé que j'avais simplement des fichiers LZMA individuels sur mes mains, pas un fichier d'archive 7z. Pavlov ne fournit aucune bibliothèque C# pour cela. J'ai donc décidé à la place qu'il serait plus facile de faire un appel de processus à 7z.exe. Merci pour votre échantillon, qui me permettra de commencer. –
peut J # faire le format .7z? (OP n'a pas spécifié quel format, mais je sais que 7zip utilise par défaut son propre format, bien qu'il puisse aussi faire .zip.) –