[VBA] Fonction Dir et attributs.
Panurge
Messages postés
38
Statut
Membre
-
Panurge -
Panurge -
Bonsoir.
La documentation de Word 2002 sur la fonctio Dir et son second argument ne me semble pas claire.
Le second argument est, disons, un champ de bits.
Voici ce que dit la documentation pour commencer :
" Dir, fonction
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.
Syntaxe
Dir[(pathname[, attributes])] "
Que faut-il entendre exactement par " correspondant à un attribut de fichiers " ?
Avant de donner un exemple de code et son résultat, je copie ce que la documentation indique sur la façon de désigner les attributs :
Constante Valeur Description
vbNormal 0 (Par défaut) Spécifie les fichiers sans attributs.
vbReadOnly 1 Spécifie les fichiers accessibles en lecture seule ainsi que les fichiers sans attributs.
vbHidden 2 Spécifie les fichiers cachés ainsi que les fichiers sans attributs.
vbSystem 4 Spécifie les fichiers système ainsi que les fichiers sans attributs. Non disponible sur le Macintosh.
vbVolume 8 Spécifie un nom de volume ; si un autre attribut est spécifié, la constante vbVolume est ignorée. Non disponible sur Macintosh.
vbDirectory 16 Spécifie les dossiers ainsi que les fichiers sans attributs.
vbAlias 64 Le nom du fichier spécifié est un alias. Disponible uniquement sur le Macintosh.
Voici maintenant un code que j'ai écrit pour tester cela :
If Dir("C:\FichierPourTesterAttributs.txt", vbNormal) <> "" Then
MsgBox "Le fichier existe déjà."
Else
MsgBox "Le fichier n'existe pas."
End If
Le fichier en question existe bien à l'endroit indiqué.
S'il a les attributs "Lecture seule" et "Archive" mais pas l'attribut "Fichier caché", le MsgBox dit qu'il existe.
S'il a les trois attributs "Lecture seule", "Fichier caché" et "Archive", le MsgBox dit qu'il n'existe pas.
Je ne vois pas quelle est la règle qui peut faire attendre ce résultat.
Quelqu'un peut-il me l'expliquer ? Merci d'avance.
La documentation de Word 2002 sur la fonctio Dir et son second argument ne me semble pas claire.
Le second argument est, disons, un champ de bits.
Voici ce que dit la documentation pour commencer :
" Dir, fonction
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.
Syntaxe
Dir[(pathname[, attributes])] "
Que faut-il entendre exactement par " correspondant à un attribut de fichiers " ?
Avant de donner un exemple de code et son résultat, je copie ce que la documentation indique sur la façon de désigner les attributs :
Constante Valeur Description
vbNormal 0 (Par défaut) Spécifie les fichiers sans attributs.
vbReadOnly 1 Spécifie les fichiers accessibles en lecture seule ainsi que les fichiers sans attributs.
vbHidden 2 Spécifie les fichiers cachés ainsi que les fichiers sans attributs.
vbSystem 4 Spécifie les fichiers système ainsi que les fichiers sans attributs. Non disponible sur le Macintosh.
vbVolume 8 Spécifie un nom de volume ; si un autre attribut est spécifié, la constante vbVolume est ignorée. Non disponible sur Macintosh.
vbDirectory 16 Spécifie les dossiers ainsi que les fichiers sans attributs.
vbAlias 64 Le nom du fichier spécifié est un alias. Disponible uniquement sur le Macintosh.
Voici maintenant un code que j'ai écrit pour tester cela :
If Dir("C:\FichierPourTesterAttributs.txt", vbNormal) <> "" Then
MsgBox "Le fichier existe déjà."
Else
MsgBox "Le fichier n'existe pas."
End If
Le fichier en question existe bien à l'endroit indiqué.
S'il a les attributs "Lecture seule" et "Archive" mais pas l'attribut "Fichier caché", le MsgBox dit qu'il existe.
S'il a les trois attributs "Lecture seule", "Fichier caché" et "Archive", le MsgBox dit qu'il n'existe pas.
Je ne vois pas quelle est la règle qui peut faire attendre ce résultat.
Quelqu'un peut-il me l'expliquer ? Merci d'avance.
A voir également:
- [VBA] Fonction Dir et attributs.
- Fonction si et - Guide
- Win dir stat - Télécharger - Gestion de fichiers
- Dir/s - Forum Autoit / batch
- Fonction miroir - Guide
- Fonction find vba - Astuces et Solutions
2 réponses
Bonjour,
J'ai déjà rencontré ce problème et je me suis rabatu
sur les objets de scripting (vbs) pour lire les attributs
des fichiers.
je ne saurais dire pourquoi malheureusement, toutefois
voici un exemple du code que j'ai utilisé.
Lupin
J'ai déjà rencontré ce problème et je me suis rabatu
sur les objets de scripting (vbs) pour lire les attributs
des fichiers.
je ne saurais dire pourquoi malheureusement, toutefois
voici un exemple du code que j'ai utilisé.
Sub Test()
Dim objFSO, objFichier
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFichier = objFSO.GetFile("C:\Fichier.txt")
If (objFichier.Attributes And 1) Then
MsgBox "Fichier en lecture seule"
Else
If (objFichier.Attributes And 2) Then
MsgBox "Fichier caché"
Else
' etc ...
End If
End If
End Sub
Lupin
Merci beaucoup pour cette réponse.
On dirait vraiment qu'il y a un bug.
Je vais essayer de me documenter sur le vbs, dont je ne sais rien.
Il faudra que j'apprenne tout d'abord si on peut l'utiliser dans les macros de Word...
Encore merci.
On dirait vraiment qu'il y a un bug.
Je vais essayer de me documenter sur le vbs, dont je ne sais rien.
Il faudra que j'apprenne tout d'abord si on peut l'utiliser dans les macros de Word...
Encore merci.
re:
je dirais de façon général que VBS est un sous-ensemble
de VBA qui lui-même est un sous-ensemble de VB.
VBS est pratiquement compatible a 100% avec VBA,
seule quelques instructions ainsi que le typage diffère.
voici un lien pour msdn vbs
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/anch_UIDesignDev.asp
et bien sur, visitez le site de JCB www.bellamyjc.org
Lupin
je dirais de façon général que VBS est un sous-ensemble
de VBA qui lui-même est un sous-ensemble de VB.
VBS est pratiquement compatible a 100% avec VBA,
seule quelques instructions ainsi que le typage diffère.
voici un lien pour msdn vbs
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/anch_UIDesignDev.asp
et bien sur, visitez le site de JCB www.bellamyjc.org
Lupin
re:
le précédent lien ne pointe pas à la bonne place :
http://www.microsoft.com/technet/scriptcenter/default.mspx
Lupin
le précédent lien ne pointe pas à la bonne place :
http://www.microsoft.com/technet/scriptcenter/default.mspx
Lupin