bonjour
comment savoir si un dossier est vide (sans utiliser les fso)
Merci d'avance
bonjour
comment savoir si un dossier est vide (sans utiliser les fso)
Merci d'avance
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.
d'après msdnEn utilisant la fonction dir
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.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.
j'ai essayé quand même ceci
mais elle me retourne une chaine vide que le dossier existe ou non, vide ou non
Code : Sélectionner tout - Visualiser dans une fenêtre à part mifil = Dir("c:\N2")
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 parJ'ai toujors du mal à comprendre pourquoi on sort l'artillerie lourde de fso quand un simple dir suffit souvent.
(sans utiliser les fso)
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.
cet exemple implique que le dossier e:\amoi\essai\ existe.
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
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"
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mifil = Dir("c:\N2")
Mais quel est le rôle la boucle while
Merci aussi à progelecT . Mais pourquoidans certains cas
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager