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.)
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.
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.
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!