Décompresser une archive rar [VB.NET] [Résolu]

cs_Anakin79 88 Messages postés mercredi 9 juin 2010Date d'inscription 9 novembre 2010 Dernière intervention - 23 août 2010 à 15:53 - Dernière réponse : cs_Anakin79 88 Messages postés mercredi 9 juin 2010Date d'inscription 9 novembre 2010 Dernière intervention
- 24 août 2010 à 15:02
Bonjour,

Récemment, j'ai commencé un programme.

C'est une installation, qui télécharge un fichier rar sur un ftp puis il l'enregistre dans c:/

Mais le seul problème, c'est que je ne connais pas de code pour le décompresser..

J'ai cherché sur google, mais les codes qu'il me donne sont pour vb6...

Merci d'avance pour vos réponses
Afficher la suite 

6 réponses

Répondre au sujet
cs_Anakin79 88 Messages postés mercredi 9 juin 2010Date d'inscription 9 novembre 2010 Dernière intervention - 23 août 2010 à 18:47
0
Utile
J'ai trouver un code :

Imports System.IO
Imports System.IO.Compression



Public Function decompression(ByVal cheminSource As String, ByVal cheminDestination As String) As Boolean
' cheminSource : chemin complet du fichier compressé
' cheminDestination : chemin complet du fichier où le fichier doit être décompressé

Try

'Lecture du fichier compresse
Dim monFileStream As New FileStream(cheminSource, FileMode.Open)
' Données du fichier placées dans un GZipStream
Dim monGzipStream As New GZipStream(monFileStream, CompressionMode.Decompress)

' Tableau qui va contenir la taille du fichier
Dim tailleOctets(3) As Byte

' Positionnement dans le Stream pour récupérer la taille
Dim position As Integer = CInt(monFileStream.Length - 4)
monFileStream.Position = position

' Récupération de la taille du fichier
monFileStream.Read(tailleOctets, 0, 4)

' Repositionnement en début du Stream
monFileStream.Position = 0

' Conversion de la taille du fichier en entier
Dim tailleFichier As Integer = BitConverter.ToInt32(tailleOctets, 0)
' Dimesionnement du buffer
Dim buffer(tailleFichier + 100) As Byte
' Offset qui permettra de se repérer dans le Stream
Dim monOffset As Integer = 0


While (True)

' Les données sont décompressées et placées dans le buffer
Dim decompressionOctets As Integer = monGzipStream.Read(buffer, monOffset, 100)

' Tant qu'il reste des données on continue
If (decompressionOctets = 0) Then
Exit While
End If

' On icrémente l'offset pour ne pas repartir de 0 à chaque fois...
monOffset += decompressionOctets

End While

' Création du fichier décompressé
monFileStream = New FileStream(cheminDestination, FileMode.Create)
' Ecriture des données décomrpessées dans le fichier
monFileStream.Write(buffer, 0, tailleFichier - 1)

' Efface les données en mémoire tampon
monFileStream.Flush()

' Fermeture des Streams
monFileStream.Close()
monGzipStream.Close()

Return True

Catch ex As Exception

MessageBox.Show(ex.Message)
Return False

End Try

End Function



Sur le site, il y a écrit que je dois passer en paramètres le chemin complet du fichier GZip à décompresser, et ensuite le chemin de destination du fichier qui va être décompressé.

Mais je ne sais pas comment on fais
Commenter la réponse de cs_Anakin79
cs_Anakin79 88 Messages postés mercredi 9 juin 2010Date d'inscription 9 novembre 2010 Dernière intervention - 24 août 2010 à 14:58
0
Utile
okay merci
Commenter la réponse de cs_Anakin79
cs_Anakin79 88 Messages postés mercredi 9 juin 2010Date d'inscription 9 novembre 2010 Dernière intervention - 24 août 2010 à 14:59
0
Utile
a aussi, est-ce possible, de "copier" un DOSSIER qui est dans la solutions du projet et de le "coller" sur le disque dur ?
Commenter la réponse de cs_Anakin79
cs_Anakin79 88 Messages postés mercredi 9 juin 2010Date d'inscription 9 novembre 2010 Dernière intervention - 24 août 2010 à 15:02
0
Utile
non, oublier cette question ^^

Je vais les mettre en .zip

Merci à vous deux.

++
Commenter la réponse de cs_Anakin79
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 23 août 2010 à 19:12
-2
Utile
decompression("d:\a.zip", "d:")

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Commenter la réponse de NSUADI
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 23 août 2010 à 23:34
-2
Utile
Ce code est pour les archives GZip et pas pour les archives RAR, ca ne fonctionnera pas...

Les archives RAR sont la propriété des auteurs de Winrar, donc si tu veux ouvrir un fichier RAR tu peux te servir de leurs DLL mais il faut que tu ai une licence de Winrar, de plus les DLL ne t'appartenant pas ton programme ne pourra jamais être distribué ou vendu publiquement.

L'autre solution est de créer toi même une classe décompessant les rar, mais bon courage...

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Commenter la réponse de Mayzz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.