ouvrir un fichier rar par c

Je dois écrire du code en C pour extraire un fichier rar protégé par mot de passe dans Windows. Je ne sais pas comment faire. quelqu’un peut-il me suggérer quelque chose ou fournir un exemple de code? Je serai très reconnaissant.

MODIFIER:

C’est le code que j’utilise pour ouvrir le fichier rar. Dans la commande système, ranjit est le mot de passe. Cela donne l’erreur symbol_system indéfinie dans le module + le nom du fichier. Quelqu’un peut-il m’aider? Je me bats dessus depuis deux jours. EDIT: Ce code ouvre l’archive mais ne l’extrait pas. Si j’utilise la commande unrar en ligne de commande, le fichier est extrait. Qu’est-ce que je devrais faire?

#include #include int main(int argc, char **argv) { char file[20]; char file2[50] = "F:\\Program Files\\WinRAR\\unrar.exe"; printf("enter the name of the rar file : "); gets(file); puts(file); system(("%se -p ranjit %s >C:\stdout.log 2>C:\stderr.log",file2, file)); getchar(); return 0; } 

Outre les suggestions de karlphilip, vous trouverez également quelques ressources potentiellement intéressantes sur http://www.rarlabs.com/rar_add.htm .

En particulier, je pense que les sources UnRAR.dll et UnRAR peuvent être pertinentes. Je ne peux pas vraiment vérifier au Momment cependant.

Utilisation de la bibliothèque unrar – extraction de fichiers dans un tampon filestream

Mais si vous recherchez une solution en C pur, jetez un coup d’œil à: http://www.unrarlib.org/

Extrait de leur FAQ: URARFileLib (nom abrégé de la bibliothèque de fichiers UniquE RAR, également appelée unrarlib) est une bibliothèque gratuite permettant aux programmeurs C d’accéder aux archives RAR.

Une autre approche , que je viens de tester avec succès, ne nécessite pas l’utilisation de bibliothèques externes pour décompresser les fichiers rar. Utilisez system () pour appeler un outil de ligne de commande (tel que unrar ) déjà installé sur votre système pour effectuer le travail:

 system("unrar x -ppassword protected_file.rar /destination_directory"); 

Par exemple, supposons que le fichier protégé s’appelle file.rar , que le mot de passe soit 1234 et que le répertoire de destination est / home / user , vous appelez system () avec les parameters suivants:

 system("unrar x -p1234 file.rar /home/user/");