Décompresser une archive rar [VB.NET]

Résolu
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 - 23 août 2010 à 15:53
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 - 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

6 réponses

cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
23 août 2010 à 18:47
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
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
24 août 2010 à 14:58
okay merci
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
24 août 2010 à 14:59
a aussi, est-ce possible, de "copier" un DOSSIER qui est dans la solutions du projet et de le "coller" sur le disque dur ?
0
cs_Anakin79 Messages postés 88 Date d'inscription mercredi 9 juin 2010 Statut Membre Dernière intervention 9 novembre 2010 1
24 août 2010 à 15:02
non, oublier cette question ^^

Je vais les mettre en .zip

Merci à vous deux.

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
23 août 2010 à 19:12
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
-2
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
23 août 2010 à 23:34
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.
-3
Rejoignez-nous