IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

tester si un répertoire est vide


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Points : 98
    Points
    98
    Par défaut tester si un répertoire est vide
    bonjour
    comment savoir si un dossier est vide (sans utiliser les fso)

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    En utilisant la fonction dir
    J'ai toujors du mal à comprendre pourquoi on sort l'artillerie lourde de fso quand un simple dir suffit souvent.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Points : 98
    Points
    98
    Par défaut
    En utilisant la fonction dir
    d'après msdn
    Renvoie une valeur de type String représentant le nom d'un fichier, d'un répertoire ou d'un dossier correspondant à une chaîne de recherche, à un attribut de fichier ou au nom de volume d'un lecteur.
    et l'exemple y présenté l'utilise pour tester si certains fichiers et dossiers existent, je ne vois pas comment l'utiliser pour tester si un répertoire est vide ou non.
    j'ai essayé quand même ceci
    mais elle me retourne une chaine vide que le dossier existe ou non, vide ou non
    J'ai toujors du mal à comprendre pourquoi on sort l'artillerie lourde de fso quand un simple dir suffit souvent.
    dans les FAQs et d'autres forums on cite plusieurs méthodes avec leurs inconvénients, je n'ai aucune idée sur les façons avec lesquelles les autres membres réfléchissent, j'ai alors anticipé leurs réponses par
    (sans utiliser les fso)

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Points : 617
    Points
    617
    Par défaut
    salut

    voici comment, avec Dir, tester qu'un dossier ne contient aucun fichier en lui-même, mais également aucun sous-dossier, vide ou pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim monrep As String, pasvidedos As String, pasvidefic As String
     monrep = "e:\amoi\essai\"
     pasvidedos = Dir(monrep, vbDirectory Or vbHidden)
     Do While pasvidedos <> ""
        If pasvidedos <> "." And pasvidedos <> ".." Then Exit Do
        pasvidedos = Dir
     Loop
     pasvidefic = Dir(monrep, vbNormal Or vbHidden)
     If pasvidedos & pasvidefic = "" Then
       MsgBox "vide"
     Else
       MsgBox "pas vide"
     End If
    cet exemple implique que le dossier e:\amoi\essai\ existe.

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 170
    Points
    17 170
    Par défaut
    Pas plus performant mais peut rendre service dans certains cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim NbrDossier As Integer, NbrFichiers As Integer
     
    Form1.Controls.Add "vb.DirListBox", "MeDir"
    Form1.Controls("MeDir").Path = "C:\PersoFrancis"
    NbrDossier = Form1.Controls("MeDir").ListCount
    Form1.Controls.Remove "MeDir"
     
    Form1.Controls.Add "vb.FileListBox", "MeFile"
    Form1.Controls("MeFile").Path = "C:\PersoFrancis"
    NbrFichiers = Form1.Controls("MeFile").ListCount
    Form1.Controls.Remove "MeFile"
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Points : 98
    Points
    98
    Par défaut
    Merci babaothe
    ta réponse m'a expliqué pourquoi
    ne donne toujours rien, c le \ qui manquait, bon après tout je ne suis pas informaticien.
    Mais quel est le rôle la boucle while

    Merci aussi à progelecT . Mais pourquoi
    dans certains cas

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 91
    Points : 89
    Points
    89
    Par défaut
    On peut aussi dans certains cas, exploiter l'erreur n° 53 fichier introuvable

    aussi on a besoin des fso si le chemin est en réseau, sinon on peut utiliser le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim Répertoire As String
    'Définis le chemin que tu désires...
    Répertoire = "C:UsersDMDocumentsTestTest5"
    If Dir(Répertoire, vbDirectory) = "" Then
    MsgBox "Ce répertoire """ & Répertoire & """ n'existe pas."
    Else
         If Dir(Répertoire & "*.*") = "" Then
         MsgBox "Ce répertoire """ & Répertoire & """ est vide."
         End If
    End If
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tester si un répertoire est vide
    Par laurentSc dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2010, 10h32
  2. [Batch] comment tester qu'un répertoire est vide ?
    Par JiCeBe dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 18/08/2009, 23h08
  3. [C#] Tester si un répertoire est vide
    Par Johann7751 dans le forum C#
    Réponses: 10
    Dernier message: 03/07/2009, 14h42
  4. Tester si une table est vide
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 01/07/2004, 16h25
  5. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo