ghuysmans99
Messages postés2496Date d'inscriptionjeudi 14 juillet 2005StatutContributeurDernière intervention 5 juin 2016
-
29 juil. 2007 à 10:34
ichirou_tomoe
Messages postés1Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention28 juin 2010
-
28 juin 2010 à 12:29
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ichirou_tomoe
Messages postés1Date d'inscriptionmercredi 7 avril 2004StatutMembreDernière intervention28 juin 2010 28 juin 2010 à 12:29
Comme j'avais besoin d'un module d'exploration et de sélection multiples sur les disques, j'ai utilisé ce code, en apportant toutefois deux améliorations qui peut-etre pourrait intéresser quelqu'un d'autre:
- sub ExploreDir: un moyen plus sur de récupérer les dossiers, plutot que de tester l'absence de point dans le nom, est de tester:
if GetAttr(Path & m) = vbDirectory then
à la place de :
If InStr(Path & m, ".") = 0 Then
- Sub mkBranche: pour ne pas recréer à chaques fois les nodes fils quand on clique sur un noeud, un moyen plus fiable serait de tester la valeur node.children pour voir si ils existent:
on efface les quatres lignes de gestion de la variable LastFils (qui est perdue car déclarée par "dim" et pas "static", et n'est de toutes façon pas conservée pour tous les nodes quand on en ouvre puis referme plusieurs), on ajoute:
If Node.Children = 0 Then
(et le End If qui va avec) juste autour du "Do.....Loop"
dede1919
Messages postés106Date d'inscriptionmercredi 29 novembre 2006StatutMembreDernière intervention 9 octobre 2009 15 déc. 2007 à 23:02
bonjour!
J'aime beaucoup! La difficulté n'est pas énorme. Mais parfois le plus dur c'est de rester simple ;-)
J'ai une petite question, sais tu comment on peu copier (filecopy) un fichier venant du dossier temporaire d'internet explorer vers le dossier mes documents. un autre dossier, un fichier normal ça va. Mais je n'arrive pas à sortir un fichier du dossier. Voilà, que dire à pars ça ?? continue ;)
ciberrique
Messages postés589Date d'inscriptionlundi 25 août 2003StatutMembreDernière intervention18 juillet 20101 30 juil. 2007 à 00:29
Pour avoir l'attribut d'un fichier/dossier tu as la fonction GetAttr, msdn :
Renvoie une valeur de type Integer indiquant les attributs du fichier ou du dossier.
Syntaxe
GetAttr(pathname)
L'argument pathname est uneexpression de chaîne définissant un nom de fichier. L'argument pathname peut préciser le répertoire ou le dossier et le lecteur.
Valeurs renvoyées
La valeur renvoyée par GetAttr est la somme des valeurs d'attributs ci-dessous :
Constante Valeur Description
vbNormal 0 Normal
vbReadOnly 1 Lecture seule
vbHidden 2 Caché
vbSystem 4 Système.
vbDirectory 16 Répertoire ou dossier
vbArchive 32 Fichier modifié depuis la dernière sauvegarde.
J'espere que ca te suffira.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 29 juil. 2007 à 16:05
Evite d'utiliser FSO, contrairement a ce que te conseille Ghuysmans99
FSO, comme son nom l'indique (File SCRIPTING Object) est dédié au VBS.
Il est très lent. Utilises plutôt les APIs adéquates (FindFirstFile, etc.)
TomIlliev
Messages postés86Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention13 octobre 20162 29 juil. 2007 à 12:33
Salut ghuysmans99
Ce code est à la base juste un exercice de style.
Mais je me suis pris au jeu et je l'ai peaufiné car des explorateurs de dossiers simple et performants ne sont pas légions.
Une question
Est-il possible de faire afficher à une DirListBox les dossiers cachés, système, lecture seule?
Tomilliev
ghuysmans99
Messages postés2496Date d'inscriptionjeudi 14 juillet 2005StatutContributeurDernière intervention 5 juin 20161 29 juil. 2007 à 10:34
Il ne faut pas utiliser Dir mais utiliser l'objet FSO.
Regarde ma dernière source en date, MUpx.
Elle utilise FSO pour lister recursivement tous les EXE/DLL dans un rep. précisé...
28 juin 2010 à 12:29
- sub ExploreDir: un moyen plus sur de récupérer les dossiers, plutot que de tester l'absence de point dans le nom, est de tester:
if GetAttr(Path & m) = vbDirectory then
à la place de :
If InStr(Path & m, ".") = 0 Then
- Sub mkBranche: pour ne pas recréer à chaques fois les nodes fils quand on clique sur un noeud, un moyen plus fiable serait de tester la valeur node.children pour voir si ils existent:
on efface les quatres lignes de gestion de la variable LastFils (qui est perdue car déclarée par "dim" et pas "static", et n'est de toutes façon pas conservée pour tous les nodes quand on en ouvre puis referme plusieurs), on ajoute:
If Node.Children = 0 Then
(et le End If qui va avec) juste autour du "Do.....Loop"
15 déc. 2007 à 23:02
J'aime beaucoup! La difficulté n'est pas énorme. Mais parfois le plus dur c'est de rester simple ;-)
J'ai une petite question, sais tu comment on peu copier (filecopy) un fichier venant du dossier temporaire d'internet explorer vers le dossier mes documents. un autre dossier, un fichier normal ça va. Mais je n'arrive pas à sortir un fichier du dossier. Voilà, que dire à pars ça ?? continue ;)
30 juil. 2007 à 00:29
Renvoie une valeur de type Integer indiquant les attributs du fichier ou du dossier.
Syntaxe
GetAttr(pathname)
L'argument pathname est uneexpression de chaîne définissant un nom de fichier. L'argument pathname peut préciser le répertoire ou le dossier et le lecteur.
Valeurs renvoyées
La valeur renvoyée par GetAttr est la somme des valeurs d'attributs ci-dessous :
Constante Valeur Description
vbNormal 0 Normal
vbReadOnly 1 Lecture seule
vbHidden 2 Caché
vbSystem 4 Système.
vbDirectory 16 Répertoire ou dossier
vbArchive 32 Fichier modifié depuis la dernière sauvegarde.
J'espere que ca te suffira.
29 juil. 2007 à 16:05
FSO, comme son nom l'indique (File SCRIPTING Object) est dédié au VBS.
Il est très lent. Utilises plutôt les APIs adéquates (FindFirstFile, etc.)
29 juil. 2007 à 12:33
Ce code est à la base juste un exercice de style.
Mais je me suis pris au jeu et je l'ai peaufiné car des explorateurs de dossiers simple et performants ne sont pas légions.
Une question
Est-il possible de faire afficher à une DirListBox les dossiers cachés, système, lecture seule?
Tomilliev
29 juil. 2007 à 10:34
Regarde ma dernière source en date, MUpx.
Elle utilise FSO pour lister recursivement tous les EXE/DLL dans un rep. précisé...