Décompresser archive GZIP (*.tar.gz) : erreur chemin d'accès ?

Résolu
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 - 25 juil. 2007 à 16:19
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 - 25 juil. 2007 à 17:33
Bonjour,

J'essai de décompresser un fichier GZIP (extension : *.tar.gz) vers un repertoire temporaire et lors du débogage j'obtiens l'erreur suivante : l'accès au chemin d'accès est refusé ...

PS : Je suis sous Windows Vista Ultimate

Voici mon code :

ExtractGZIPArchive("...fichier.tar.gz", "repertoiretemp")

Voici la procedure de decompression :

Public

Sub ExtractGZipArchive(
ByVal cheminSource
As
String,
ByVal cheminCible
As
String)

Try

Dim bufferLen
As
Integer = 1024

Dim hbread
As
New BinaryReader(File.OpenRead(cheminSource))

Dim gzipper
As GZipStream =
New GZipStream(hbread.BaseStream, CompressionMode.Decompress)

Dim hbwrite
As
New BinaryWriter(File.OpenWrite(cheminCible))

Dim F_array(bufferLen)
As
Byte

Dim readlen
As
Integer

Dim flag
As
Boolean =
True

Doreadlen = gzipper.Read(F_array, 0, F_array.Length)

If readlen > 0
Thenflag =

True

If readlen = (bufferLen + 1)
Then hbwrite.Write(F_array, 0, readlen)
Else hbwrite.Write(F_array, 0, readlen - 1)

Elseflag =

False

End
If

Loop
While (flag)hbwrite.Close()

gzipper.Close()

Catch ex
As Exception

Exit
Try

End
Try

End
Sub

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 juil. 2007 à 16:40
LE reflex, la doc ...

http://msdn2.microsoft.com/en-us/library/system.io.file.openwrite.aspx

on y voit des exemples clairs... on s'assure que le fichier de sortie existe, avant le OpenWrite...
3
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
25 juil. 2007 à 17:23
tiens, tu t'es inspiré de mon code!


hbwrite,hbread... HB quoi :p


Pour info, les méthode de compression/decompression du framework ne sont effectives que sur des fichiers unique. Pas de multifichier sans bidouiller un petit "collage" avant et après, ce qui ne respecterait plus les normes GZIP.

HvB a.k.a BaTo ^^x
http://chat.batto.info/ ^^'
http://batto.info/ 
3
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 17:33
j'ai réussi à extraire le fichier Gzip et à le mettre dans un fichier non compressé et ça me suffit pour mon utilisation

merci à vous 2 !
3
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 16:20
J'ai oublié de poser ma question -_-'

Comment puis-je decompresser le fichier GZIP sans erreur ?

merci d'avance
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 juil. 2007 à 16:25
reste a savoir de quel chemin d'acces il est question...

repertoiretemp, qui serait incorrect
ou ton fichier gzip, qui serait verrouillé en lecture

a voir si ton fichier est complètement téléchargé (si tu es dans un tel cas), si personne n'a la main dessus, etc

petite reflexion, peut etre hors-sujet....
pas de Close des streams dans ton Finally ?
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 16:30
ah oui un close dans les finally serait adéquat : merci

non le fichier n'est pas vérouillé (je peux l'ouvrir avec WinRAR ...)
le fichier est complet

repertoire temp dans mon cas est : D:\Users\Jerem\AppData\Local\Temp\scangzip
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 16:33
c'est là que ça coince :
Dim

hbwrite
As
New BinaryWriter(File.OpenWrite(cheminCible))
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 17:04
le fichier de sortie ?
si je décompresse je suis obligé d'obtenir un dossier contenant plusieurs fichiers ...

j'essai d'adapter mon code pour une verification des chemin d'accès, création au pire en attendant
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 17:06
voilà j'ai tout modifié : ça change strictement rien
j'ai regardé manuellement le dossier de sortie est bien là etc ... rien d'anormal
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 17:09
mais bien sûr !

File.OpenWrite sur un dossier c'est normal que ça ne fonctionne pas -_-'
mais comment modifier mon code aussi ? (désolé de t'embeter renfield)
0
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 17:25
oui j'avais pris ton code ^^ (j'avais testé celui de MSDN même erreur etc)

mais ce que j'arrive pas à faire c'est justement la bidouille ... comment faire pour extraire chaque fichier du Gzip original ?
0
Rejoignez-nous