web-dev-qa-db-fra.com

Comment extraire des fichiers zip avec la ligne de commande WinRar?

En essayant d'extraire des fichiers zip, je reçois l'erreur:

c:\path\nom.zip n'est pas archive rar
[.____] Aucun fichier à extraire

Mon code est:

p.StartInfo.FileName = @"C:\Program Files\WinRAR\rar.exe";
p.StartInfo.Arguments = string.Format("x -o- {2} \"{0}\" * \"{1}\"\\ ",
  szFN,
  outFolder,
  passWord == null ? "" : string.Format("-p\"{0}\"", passWord));

La version GUI peut extraire des fichiers zip et 7z.

Pourquoi cela ne fonctionne-t-il pas? Comment puis-je extraire des fichiers zip et 7z?

(Remarque: j'ai un code source différent pour 7ZIP. Je suppose que je peux fusionner les deux et utiliser uniquement ce qui précède lorsque le fichier a une extension RAR. Mais je n'aime pas cette solution.)

16
user34537

Libérer unrar.exe et console versionRar.exe de WinRar ne prend en charge que le format d'archive RAR. Cela est clairement décrit dans le deuxième paragraphe du manuel pour Rar.exe Quel est le fichier texte Rar.txt Dans le dossier de fichiers de programme de WinRar .

Vous devez utiliser WinRar.exe Au lieu de cela, qui soutient également d'autres formats d'archives:

[Chemin\winrar.exe] x [Commutateurs] [Chemin sur le fichier zip] [Fichiers à extraire, . Pour tous les fichiers] [Dossier de chemin à extraire à]

Exemple:

"%ProgramFiles%\WinRAR\winrar.exe" x -ibck c:\file.Zip *.* c:\folder\

La syntaxe, les commandes et les commutateurs pour la version GUI WinRAR.exe sont énumérées et décrites à l'aide de WinRar . Cliquez dans le menu Aide sur l'élément de menu Aide Tumes, Ouvrir sur l'onglet Aide Conten L'élément Mode de ligne de commande et lecture Les pages d'aide énumérées sous cet élément.

Par exemple, le commutateur -ibck Soit supporté uniquement par WinRAR.exe mais pas par Rar.exe est pour exécuter l'extraction en arrière-plan, ce qui signifie la version GUI de WinRar rend l'extraction minimisée à une icône dans la barre d'état système Windows.

39
user2874632

rar.exe ne peut en effet pas déballer les fichiers rar. Ce n'est pas du tout de même que Winrar.

Pour déballer les fichiers zip dans .NET, vous pouvez envisager la bibliothèque dotzip la bibliothèque. Il possède une licence compatible avec le logiciel commercial, contrairement à CsharpziPlib.

Si vous devez également prendre en charge RAR, vous pouvez utiliser UNRAR.DLL avec Pinvoke:
[.____] http://www.rarlab.com/rar_add.htm
http://www.rarlab.com/rar/unrardll.exe

Ou ce .NET UNRARL LIBRY:
[.____] http://www.chilkatsoft.com/rar-dotnet.asp

Peut-être celui-ci pour 7zip.

5
Mick

Vous pouvez utiliser soit SevenZipSharp ou DotNetZip bibliothèque dans votre application!

Mais je vais aller pour SevenZipSharp LIB car il prend en charge toutes les archives prises en charge par 7-ZIP!

Source et binaire sont disponibles dans les liens!

1
Writwick