|
Arborescence fichier ZIP dans une table Hiérarchique |
Débuté par Cédric_34, 07 sep. 2023 09:27 - Aucune réponse |
| |
| | | |
|
| |
Membre enregistré 949 messages |
|
Posté le 07 septembre 2023 - 09:27 |
Bonjour, J'ai adapté mon code d'une arborescence dans un fichier ZIP pour l'appliquer à une table Hiérarchique. Ce code fonctionne pour un fichier à la racine du ZIP (sans répertoire) et/ou pour les fichiers situés dans les répertoires. En revanche, je n'ai pas réussi à lister les répertoires si ils sont vides (donc le code n'est pas adapté à ce cas de figure pour le moment). Les fonctions "zipListeFichier" et "zipNbFichier" ne semblent pas traiter les répertoires.
Ma question : Ai-je loupé quelque chose ou y a t-il un manque concernant la liste des répertoires dans un ZIP ?
C'est ennuyeux car sans cela, le résultat ne me permet pas de savoir si j'ai un répertoire vide de disponible dans l'archive. Certains me diront de décompresser l'archive et de lister les fichiers et répertoires, mais ce n'est pas le but. Merci à ceux qui auraient un élément de réponse.
En attendant, voici le code sans les répertoires vides :
MonArchive est un zipArchive sFichier est une chaîne ListeFichier est une chaîne tabRepertoire est tableau de chaînes Nbniveau est un entier sFils est une chaîne sParent est une chaîne IndiceInsertion est un entier
NomTable est un Champs <- TABLEH_Archive ColonneHierarchie est chaîne = "COL_Hierarchie"
sFichier = fSélecteur("", "Sélectionnez un fichier", "Fichier zip (*.*)"+TAB+"*.zip", "*")
SI zipOuvre(MonArchive, sFichier, zipLecture) = 0 ALORS ListeFichier = zipListeFichier(MonArchive) SI zipNbFichier(MonArchive) = 0 ALORS Info("Aucun fichier dans l'archive") RETOUR FIN
Sablier(Vrai) TableSupprimeTout(NomTable) POUR TOUTE chaîne saCheminFichier de ListeFichier SEPAREE PAR RC tabRepertoire = ChaîneDécoupe(saCheminFichier, "\") Nbniveau = tabRepertoire.Occurrence() SI Nbniveau > 1 ALORS sParent = "" sFils = tabRepertoire[1] SI TableChercheFils(ColonneHierarchie, sFils, Vrai, 0) = -1 ALORS TableAjouteFils(NomTable, sParent, sFils) FIN sParent = sFils POUR I = 2 _À_ Nbniveau - 1 sFils = tabRepertoire[I] SI TableChercheFils(ColonneHierarchie, sFils, Vrai, sParent) = -1 TableAjouteFils(NomTable, sParent, sFils) FIN sParent += [TAB] + sFils FIN sFils = tabRepertoire[Nbniveau] IndiceInsertion = TableAjouteFils(NomTable, sParent, sFils) NomTable[IndiceInsertion]..ImageDéroulée = Null NomTable[IndiceInsertion]..ImageEnroulée = Null SINON IndiceInsertion = TableAjouteFils(NomTable, 0, saCheminFichier) NomTable[IndiceInsertion]..ImageDéroulée = Null NomTable[IndiceInsertion]..ImageEnroulée = Null FIN FIN Sablier(Faux) TableTrie(NomTable) FIN
Cdlt |
| |
| |
| | | |
|
| | | | |
| | |
|