Comment extraire un fichier rar en C#?
Je veux extraire .rar fichiers en utilisant cmd shell j'ai donc écrit ce code:
string commandLine = @"c:\progra~1\winrar\winrar e c:\download\TestedU.rar c:\download";
ProcessStartInfo PSI = new ProcessStartInfo("cmd.exe");
PSI.RedirectStandardInput = true;
PSI.RedirectStandardOutput = true;
PSI.RedirectStandardError = true;
PSI.UseShellExecute = false;
Process p = Process.Start(PSI);
StreamWriter SW = p.StandardInput;
StreamReader SR = p.StandardOutput;
SW.WriteLine(commandLine);
SW.Close();
La première fois, il a bien fonctionné, la deuxième fois il affiche rien.
Serait une powershell ou cmd script pas plus approprié? Est-il une raison particulière vous voulez le faire dans le code?
Voir aussi stackoverflow.com/questions/11737/...
Le Chilkat bibliothèque référencé ci-dessus fonctionne un régal. Seulement l'irritation, c'est que son code non managé.
Voir aussi stackoverflow.com/questions/11737/...
Le Chilkat bibliothèque référencé ci-dessus fonctionne un régal. Seulement l'irritation, c'est que son code non managé.
OriginalL'auteur Hanad | 2010-07-13
Vous devez vous connecter pour publier un commentaire.
Utilisation SevenZipSharp que c'est un peu meilleure façon de faire les choses en travaillant avec certains .exe.
Bien sûr, vous avez besoin d'ajuster un peu les choses, et d'utiliser certaines de vos propres trucs. Mais pour les besoins de l'exemple, j'ai ajouté quelques méthodes supplémentaires.
OriginalL'auteur MadBoy
Vous pouvez sauter l'étape intermédiaire et appelez le winrar.exe avec les paramètres de la droite au lieu de la première instanciating cmd.exe
Aussi vous pouvez prendre un coup d'oeil à la 7-zip SDK
OriginalL'auteur Kjartan Þór Kjartansson
OriginalL'auteur Hanad
Vous avez oublié d'ajouter un flux de données pour des erreurs de lecture. Si WINRAR est se comporter correctement, vous trouverez votre sortie d'erreur lorsque vous ajoutez le flux de lire.
OriginalL'auteur P.Brian.Mackey
J'ai Eu la réponse.
essayez celui-ci:
OriginalL'auteur Ahmad Mousavi
Que Kjartan suggéré, à l'aide de 7-Zip SDK peut être une meilleure option que la fraie un exécutable externe en fonction de votre utilisation:
7-Zip SDK est un C/C++ de la bibliothèque, mais http://sevenzipsharp.codeplex.com/ a un .Net de la bibliothèque autour de la 7-Zip SDK ce qui le rend plus facile à utiliser .NET.
OriginalL'auteur Kharlos Dominguez
Nous pouvons également utiliser cette,
OriginalL'auteur thevan
9 Réponses, seulement sam moussavi est de répondre directement à votre question, mais personne ne vous dit ce qui ne va pas. Citant de WinRAR manuel:
Et c'est exactement ce qu'il manque à
c:\download
. Droit maintenant, il essaie d'extraire le fichier c:\download à l'intérieur de l'archive dans le répertoire courant. Pour savoir comment travailler la première fois, c'est un mystère.OriginalL'auteur Wolfzoon
Vous pouvez utiliser cette lib directement: http://sevenziplib.codeplex.com/
OriginalL'auteur Vagaus