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

allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 16:19 - Dernière réponse : allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention
- 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
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 25 juil. 2007 à 16:40
3
Merci
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...

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 85 internautes ce mois-ci

Commenter la réponse de Renfield
Meilleure réponse
hvb 961 Messages postés vendredi 25 octobre 2002Date d'inscription 27 janvier 2009 Dernière intervention - 25 juil. 2007 à 17:23
3
Merci
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/ 

Merci hvb 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 85 internautes ce mois-ci

Commenter la réponse de hvb
Meilleure réponse
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 17:33
3
Merci
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 !

Merci allthew3 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 85 internautes ce mois-ci

Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 16:20
0
Merci
J'ai oublié de poser ma question -_-'

Comment puis-je decompresser le fichier GZIP sans erreur ?

merci d'avance
Commenter la réponse de allthew3
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 25 juil. 2007 à 16:25
0
Merci
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 ?
Commenter la réponse de Renfield
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 16:30
0
Merci
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
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 16:33
0
Merci
c'est là que ça coince :
Dim

hbwrite
As
New BinaryWriter(File.OpenWrite(cheminCible))
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 17:04
0
Merci
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
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 17:06
0
Merci
voilà j'ai tout modifié : ça change strictement rien
j'ai regardé manuellement le dossier de sortie est bien là etc ... rien d'anormal
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 17:09
0
Merci
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)
Commenter la réponse de allthew3
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 25 juil. 2007 à 17:25
0
Merci
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 ?
Commenter la réponse de allthew3

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.