Tutorial de la fonction dir / un répertoire est-il vraiment vide ?

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 047 fois - Téléchargée 27 fois

Contenu du snippet

Si vous lancez la fonction 'dir' pour la première fois, vous vous apercevrez q'avec l'attribut VbDirectory, elle renvoie toujours '.' mêm si le répertoire est vide.

Vous passez alors pas la taille du répertoire ?
s'il contient seulement des sous-répertoires et pas de fichiers, ben sa taille est zéro.

V'la comment se sortir de tout ça avec une simple fonction dir bien appliquée

Source / Exemple :


dim info_rep_vide as string
dim yapasdefichier as boolean
' monbeaurepertoire est le répertoire dont ont veut les infos
' toujours vérifier la présence du "\" final
' vb renvoie x:\ si c'est la racine et le met x:\temp sans le "\" final ailleurs

if Right(monbeaurepertoire, 1) <> "\" then
	monbeaurepertoireavecson\final=monbeaurepertoire+"\"
endif

if Dir(monbeaurepertoireavecson\final+ "*.*", vbNormal+vbhidden+vbsytem+vbReadOnly) = "" then
	' il faut metre vbnormal+vbhidden+vbsytem+vbReadOnly pour être sure
	' c'est 0+1+2+4 = 7 tout simplement
	msgbox("répertoire sans fichier ")
	yapasdefichier=true
else
	msgbox("répertoire avec fichier(s)")
	yapasdefichier=false
endif

' simplification direct pour les répertoires, pour compter aussi les repertoire cachés et autres, c'est 16+4+2+1+0=23
info_rep_vide = Dir(monbeaurepertoireavecson\final + "*.*", 23) ' vaut toujours "."
info_rep_vide = Dir ' vaut toujours".."
info_rep_vide = Dir ' vaut "" si pas de rép et sinon,le nom du premier rep sinon
' attention, si le répertoire est vide, on peut pas le faire une fois de plus
if info_rep_vide=""
	msgbox("répertoire sans sous-répertoire")
else
	msgbox("répertoire contenant au moins un sous répertoire")
endif

if info_rep_vide="" and yapasdefichier then
	msgbox("y a ni fichier ni répertoire(caché ou autre), c'est vide")
endif

Conclusion :


Le code a été écrit directement dans le bloc note, peut y avoir une erreure, mais une fois qu'on a compris le principe, c'est comme le vélo, ça s'oublie pas.

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de cs_marm0tte

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.