2015-03-12 1 views
-1

Comment exécuter la commande winzip à partir du contrôleur MVC Action?Exécution de la commande WinZip dans un programme C#

Commande:

C:\Program Files (x86)\WinZip>WZZIP.EXE -ys2048000 Location Location 
+1

S'il vous plaît fournir plus de détails sur ce que vous essayez d'accomplir. Il existe des bibliothèques qui peuvent compresser et décompresser des flux sans avoir à exécuter des programmes externes à l'application Web. Cela n'a généralement pas de sens de le faire. – NightOwl888

+0

J'essaie de scinder le fichier zip sur un emplacement particulier, puis de le déposer sur l'autre emplacement. Quand j'essaye cette commande par l'intermédiaire de cmd cela fonctionne bien –

+0

Je ne peux pas employer n'importe quelle bibliothèque ou dll de tiers. Si elle est fournie par la bibliothèque Microsoft, laissez-moi savoir sinon je dois exécuter cette commande seulement. –

Répondre

1

Ce que vous demandez, directement est possible avec la méthode System.Diagnostics.Process.Start(string, string). Cela ressemblerait à quelque chose comme ceci:

System.Diagnostics.Process.Start(
    @"C:\Program Files (x86)\WinZip\WZZIP.EXE", 
    "-ys2048000 Location Location"); 

Je suis allé dans cette voie et pour les choses simples, c'est probablement assez bon. J'ai souvent trouvé qu'il y a généralement des choses plus cool et utiles que vous pouvez faire interagir directement avec les fichiers zip. Dans ce cas, quelque chose comme DotNetZip ou SharpZip sont probablement de bonnes alternatives. J'ai déjà utilisé DotNetZip, c'est très robuste et très performant.

Voici un exemple rapide de DotNetZip page d'accueil:

Voici quelques code C# qui crée un fichier zip.

using (ZipFile zip = new ZipFile()) 
{ 
    // add this map file into the "images" directory in the zip archive 
    zip.AddFile("c:\\images\\personal\\7440-N49th.png", "images"); 
    // add the report into a different directory in the archive 
    zip.AddFile("c:\\Reports\\2008-Regional-Sales-Report.pdf", "files"); 
    zip.AddFile("ReadMe.txt"); 
    zip.Save("MyZipFile.zip"); 
} 
+0

Je ne peux pas utiliser dll tiers dans le code. Seule la version sous licence peut être utilisée ... –

+0

@SahilGupta Je ne suis pas sûr de ce que vous voulez dire, seule la version sous licence. DotNetZip est une licence publique Microsoft (Ms-PL). – Nate