Différentier Fichiers et Dossiers

Résolu
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013 - 23 juil. 2008 à 17:15
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013 - 24 juil. 2008 à 10:34
Voila ma situation :
J'ai une ListBox, dans laquelle je peut Dropper depuis l'explorateur des fichiers ou des dossiers.
Lorsque je droppe un fichier, ce dernier s'ajoute à la liste, mais j'aimerai que, lorsque je droppe un dossier, il ajoute tous les fichiers contenu dans le dossier et ses sous dossiers.
Mon seul problème, c'est de permettre au programme de reconnaitre ce qui est un fichier et ce qui est un dossier...

Quelqu'un à une idée ?

Merci !

9 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 juil. 2008 à 09:48
Si tu ne comprends pas l'aide en ligne, PrinceSiulk, te voilà vraiment mal barré !!!


Comment vois-tu le développement, toi ? Comme l'art de copier-coller, c'est tout ?


 


Tiuens copie-colle ceci (en essayant de comprendre...)
Je ne vérifie ici pas l'existence elle-meme du fichier ou dossier, puisque tu nous dis faire du drag drop (existe alors forcément) ..



Private Sub Command1_Click()
  Dim montruc As String
  montruc = "d:\monoutil"
  MsgBox montruc & " est-il un dossier ? ====>> " & savoir(montruc)
  montruc = "d:\monoutil\voyons.txt"
  MsgBox montruc & " est-il un dossier ? ====>> " & savoir(montruc)
End Sub



Private Function savoir(lachose As String) As Boolean
  savoir = False
  If Dir(lachose) <> "" Then Exit Function
  If Dir(lachose & "", vbDirectory) <> "" Then savoir = True
End Function


Ceci étant dit : tu peux faire encore plus simple avec GetAttr (à bûcher dans ton aide en ligne... et ne nous dis pas n'y rien comprendre non plus, hein ...)




 
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 juil. 2008 à 17:20
Bonjour,


utilise l'argument/attribut vbDirectory de la fonction Dir ... (tu en as un exemple dans ton aide en liogne)...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 juil. 2008 à 08:15
Salut,
Et si un des dossier contient à son tour des dossiers? tu souhaites aussi écrire le contenu du sous dossier (etc...) récursivité...

@+: Ju£i€n
Pensez: Réponse acceptée
0
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013
24 juil. 2008 à 09:03
J'ai déjà une routine récursive pour lister tous les sous dossiers du dossier, mon problème, c'est juste que au moment du Drag/Drop, la liste de reconnai pas un dossier d'un fichier :(
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
24 juil. 2008 à 09:11
Il me semble t'avoir invioté à te servfir de la fonction dir, à utiliser avec vbdirectory ...
Qu'en as-tu fait ?
As-tu ouvert ton aide en ligne
Quelle difficulté d'application (voire de compréhension de l'exemple qui accompagne cette fonction) rencontres-tu donc ?
La chose est simple ...
0
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013
24 juil. 2008 à 09:23
Je viens de regarder l'aide en ligne, et je n'y comprend rien :(
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
24 juil. 2008 à 09:39
Re,
Dans ce  cas va faire un tour sur www.codyx.org, je crois qu'il y a des exemple pour Dir()

En modifiant un peu ces exemple tu devrais pouvoir t'en sortir.

De plus pense à mettre le code que tu utilises lors des tes questions (si il ne fait pas 3000 lignes)

@+: Ju£i€n
Pensez: Réponse acceptée
0
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013
24 juil. 2008 à 09:54
Du copier/coller, non, justement j'essai toujours de comprendre ce que je tappe (bon, parfois, je ne peux faire autrement que copier/coller car c'est au dessu de mon niveau :p )
Mais je reste un programmateur amateur, pour moi c'est juste un hobbit qui me prend de temps en temps !

Ceci dit, GetAttr pourrait bien être ma solution, merci :)
0
PrinceSilk Messages postés 56 Date d'inscription vendredi 31 janvier 2003 Statut Membre Dernière intervention 26 mai 2013
24 juil. 2008 à 10:34
Merci pour le GetAttr

voila le code final

    Dim Fichier As Variant
     
    For Each Fichier In Data.Files
        If GetAttr(Fichier) = vbDirectory Then
            Call AddFolders(Fichier) 'Appel une fonction récursive qui liste le contenu du dossier et des sous dossiers
        Else
            Call AddFiles(Fichier) 'Ajoute le fichier
        End If
    Next Fichier

^^
0
Rejoignez-nous