Créer un pack de dossier et sous-dossiers ??
Créer un pack de dossier et sous-dossiers ??
Hello, est-ce que quelqu'un connaît le moyen de créer un pack à partir d'un dossier. C'est à dire que je voudrais créer une archive compressée d'un dossier et ses sous-dossiers (donc avec), afin de conserver l'arborescence initiale, et pas compresser 'que' les fichiers du dossier.
Après recherches infructueuses, je n'ai pas trouver de lib ou de code faisant ce type d'action, je me demande si vous auriez ça en magasin ou encore une piste à suivre.
Merci, @+
Après recherches infructueuses, je n'ai pas trouver de lib ou de code faisant ce type d'action, je me demande si vous auriez ça en magasin ou encore une piste à suivre.
Merci, @+
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Ya un topic de 2005 là dessus (PB 3.9x donc), donc je sais pas si ca sera vraiment utile, mais ya 2 Lib pour la copression apparement : http://purebasic.forum-gratuit.com/view ... light=zlib
Lio
Lio
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
je te remercie mais j'ai déjà vu et ce n'est pas ce que je cherche.
Enfin, je pense avoir trouvé quelque chose qu'il faut que je modifie pour l'adapter à mes besoins, si ça marche je poste un exemple. Sinon, si vous avez des idées...
@+
Enfin, je pense avoir trouvé quelque chose qu'il faut que je modifie pour l'adapter à mes besoins, si ça marche je poste un exemple. Sinon, si vous avez des idées...
@+
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
La lib Pure_Zip fait ça.
Voici une copie de l'exemple fourni qui permet de compresser un dossier et ses sous-dossiers dans un zip.
Voici une copie de l'exemple fourni qui permet de compresser un dossier et ses sous-dossiers dans un zip.
Code : Tout sélectionner
; -=====================================================================================-
; Quick & dirty Mini Console ZIP
; -=====================================================================================-
;
Procedure PureZIP_CallbackForTest(file.s, PerCent.f)
Static FirstTime.l
If FirstTime = 0
Print("Packing ")
FirstTime = 1
EndIf
Print(".")
EndProcedure
;
myFileinfo.PureZIP_FileInfo
PureZIP_SetCallback(@PureZIP_CallbackForTest())
;
OpenConsole()
MyZIP.s = ProgramParameter()
If MyZIP
MyFilesToZIP.s = ProgramParameter()
If MyFilesToZIP
If GetPathPart(MyFilesToZIP) = ""
CurrentPath.s = Space(#MAX_PATH)
GetCurrentDirectory_(#MAX_PATH, @CurrentPath)
MyFilesToZIP = CurrentPath + "\" + MyFilesToZIP
EndIf
ArgOk.l = #True
Option.s = ProgramParameter()
If Option
If LCase(Option) = "/r"
MyOption.l = #PureZIP_Recursive
Else
ArgOk = #False
PrintN("ERROR : unknown option")
PrintN("")
EndIf
EndIf
Else
PrintN("ERROR : no file specified")
PrintN("")
EndIf
Else
PrintN("ERROR : no archive specified")
PrintN("")
EndIf
;
If ArgOk
PackedFiles.l = PureZIP_AddFiles(MyZIP, MyFilesToZIP, #PureZIP_StorePathRelative, MyOption)
PrintN("")
If PackedFiles
PrintN(Str(PackedFiles) + " files packed in archive " + MyZIP)
Else
PrintN("No files found !")
EndIf
Else
PrintN("MiniZIP console PureZIP test file")
PrintN("")
PrintN("Syntax : MiniZIP Archive FileName [Option]")
PrintN("")
PrintN("Option : /r (recursive)")
PrintN("")
PrintN("Example : MiniZIP Test.zip *.*")
EndIf
CloseConsole()
; -=====================================================================================-
Bah, chez moi la lib Pure_Zip ne donne pas de bons résultats. pour ce qui est des fichiers textes, ok, par contre pour les images, zéro.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
J'ai compressé un dossier avec des images png et gif, et n'ai aucun soucis à les visualiser après extraction.Jacobus a écrit :Bah, chez moi la lib Pure_Zip ne donne pas de bons résultats. pour ce qui est des fichiers textes, ok, par contre pour les images, zéro.
Qu'entends tu par 'ne donne pas de bon résultats' ?
si je compresse un dossier contenant une trentaine de bmp de tailles variables, à la décompression j'obtiens 2 ou 3 images bmp illisibles et d'autres reformés en puzzle, généralement le bas de l'image découpé en 3 ou 4 morceaux recollés dans le désordre. Ce qui me donne un résultat plus qu'approximatif. Sinon c'est sûr la compression des sous-dossiers est réalisable, mais dans les mêmes conditions (et encore avec les chemins relatifs, car si tu prends l'option des chemins absolus, c'est la cata) dommage
l'utilisation la plus simple de cette lib que j'ai trouvé:
ces deux procédures devraient fonctionner simplement...
j'ai constaté le même bug avec l'outil de InfoByt3 PureSFX qui utilise Pure_Zip, donc...

l'utilisation la plus simple de cette lib que j'ai trouvé:
Code : Tout sélectionner
Procedure PACKAGE()
REP$ = GetCurrentDirectory()
MyZIP.s = REP$+"Package.zip"
MyFilesToZIP.s = REP$+"TRANSFERT\*.*"
PureZIP_AddFiles(MyZIP, MyFilesToZIP, #PureZIP_StorePathRelative, #PureZIP_Recursive)
EndProcedure
Procedure UNPACKAGE()
REP$ = GetCurrentDirectory()
MyZIP.s = REP$+"Package.zip"
MyZIPOutPut.s = REP$+"Dezippe\"
PureZIP_ExtractFiles(MyZIP, "*.*", MyZIPOutPut, #True)
EndProcedure
j'ai constaté le même bug avec l'outil de InfoByt3 PureSFX qui utilise Pure_Zip, donc...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Ca me surprend quand mêmeDroopy a écrit :Bizarre, surement à un bug de la lib !?
J'ai tenté de reproduire ton soucis avec 25 bmp, sans succès, aucune image n'est corrompue.

Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Il n'y a pas de corruption de fichiers avec PureZIP à ma connaissance. En cas de problèmes, il faut utiliser les dernières beta librairies de PB4 ( www.purebasic.com/beta ) à cause du bug ReadData()/Eof() et la dernière version de PureZIP.
La version PB3.94 n'a jamais posé ce genre de problèmes.
Références :
- http://www.purebasic.fr/english/viewtop ... c&start=44
- http://www.purebasic.fr/english/viewtop ... highlight=
S'il subsiste un problème avec les beta librairies, merci de poster le code qui pose problème ici : http://www.purebasic.fr/english/viewtop ... &start=165
La version PB3.94 n'a jamais posé ce genre de problèmes.
Références :
- http://www.purebasic.fr/english/viewtop ... c&start=44
- http://www.purebasic.fr/english/viewtop ... highlight=
S'il subsiste un problème avec les beta librairies, merci de poster le code qui pose problème ici : http://www.purebasic.fr/english/viewtop ... &start=165
Suivant tes conseils j'ai installé les dernières beta libs (en transformant les fichiers (*.TXT) téléchargés en Fichier) mais le compilo de pb n'aime pas et plante au lancement. Donc retrait des beta libs et retour des autres. Il y a peut-être une façon de charger ces beta libs autrement pour qu'elles soient prises en compte?
Je ne peux donc te dire si ta lib pose problème après correction, car elle me rendrait effectivement bien service. Les deux procédures de compression et décompression ci-dessus créées d'après ta librairie, sont des plus basiques. Comme je l'ai dit plus haut, les corruptions interviennent quasiment uniquement avec des BMP, les autres formats d'image sont rendus correctement.
Rectificatif :
J'ai changé les libs String et FileSystem par les beta et le compilo accepte. j'ai retesté ta lib avec les procédures dito en compressant un dossiers de plusieurs centaines de bmp.
résultat = les bmp de petites taille sont correctement restitués. les plus grands format (ex:200x300) sont corrompus. c'est le cas de 7 images sur le lot. C'est mieux mais c'est pas encore ça.
Je ne peux donc te dire si ta lib pose problème après correction, car elle me rendrait effectivement bien service. Les deux procédures de compression et décompression ci-dessus créées d'après ta librairie, sont des plus basiques. Comme je l'ai dit plus haut, les corruptions interviennent quasiment uniquement avec des BMP, les autres formats d'image sont rendus correctement.
Rectificatif :
J'ai changé les libs String et FileSystem par les beta et le compilo accepte. j'ai retesté ta lib avec les procédures dito en compressant un dossiers de plusieurs centaines de bmp.
résultat = les bmp de petites taille sont correctement restitués. les plus grands format (ex:200x300) sont corrompus. c'est le cas de 7 images sur le lot. C'est mieux mais c'est pas encore ça.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Pas de message d'erreur ?Jacobus a écrit :Suivant tes conseils j'ai installé les dernières beta libs (en transformant les fichiers (*.TXT) téléchargés en Fichier) mais le compilo de pb n'aime pas et plante au lancement.
Tu utilises bien PB 4 ?
Les librairies sont à copier dans \PureBasic\PureLibraries\.
Je confirme que sous PB4 les beta librairies sont indispensables pour PureZIP (bug PB4).Jacobus a écrit :Je ne peux donc te dire si ta lib pose problème après correction, car elle me rendrait effectivement bien service. Les deux procédures de compression et décompression ci-dessus créées d'après ta librairie, sont des plus basiques.
Pas de message d'erreur ? ==> non
Tu utilises bien PB 4 ? ==> oui
Les librairies sont à copier dans \PureBasic\PureLibraries\. ==> oui
je vais réessayer en installant les beta libs une à une pour voir laquelle génère le plantage...
Tu utilises bien PB 4 ? ==> oui
Les librairies sont à copier dans \PureBasic\PureLibraries\. ==> oui
je vais réessayer en installant les beta libs une à une pour voir laquelle génère le plantage...
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Bon c'est Ok!
J'ai installé toutes les beta libs avec sussès... sauf la Systray, c'est elle qui plante mon compilo.
Pure_Zip fonctionne donc parfaitement avec les autres beta libs et les bmp sont correctement restitués, quelle que soit leur taille.
=> Un grand Merci à Maître Gnozal! cela va vraiment me simplifier la vie dans mes applis...
J'ai installé toutes les beta libs avec sussès... sauf la Systray, c'est elle qui plante mon compilo.
Pure_Zip fonctionne donc parfaitement avec les autres beta libs et les bmp sont correctement restitués, quelle que soit leur taille.
=> Un grand Merci à Maître Gnozal! cela va vraiment me simplifier la vie dans mes applis...

Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.