GetFileAttributes()
Syntaxe
Resultat = GetFileAttributes(NomFichier$)Description
Renvoie les attributs d'un fichier.
Arguments
NomFichier$ Le fichier à tester.
Cela peut également être le nom d'un répertoire.
Valeur de retour
Renvoie les attributs du fichier.
Si le fichier n'existe pas ou si les attributs du fichier ne peuvent être lus, la commande renvoie -1.
Sur Windows, les attributs sont une combinaison des valeurs suivantes:#PB_FileSystem_Hidden : Fichier caché. #PB_FileSystem_Archive : Fichier inchangé et archivé depuis le dernier test. #PB_FileSystem_Compressed: Fichier compressé. #PB_FileSystem_Normal : Fichier normal. #PB_FileSystem_ReadOnly : Fichier en lecture seule. #PB_FileSystem_System : Fichier système.Sur Linux ou MacOSX, les attributs sont une combinaison des valeurs suivantes:#PB_FileSystem_Link : Le fichier est un lien symbolique #PB_FileSystem_ReadUser : Permission d'accès en lecture pour le propriétaire #PB_FileSystem_WriteUser : Permission d'accès en écriture pour le propriétaire #PB_FileSystem_ExecUser : Permission d'accès en exécution pour le propriétaire #PB_FileSystem_ReadGroup : Permission d'accès en lecture pour les membres du groupe propriétaire #PB_FileSystem_WriteGroup: Permission d'accès en écriture pour les membres du groupe propriétaire #PB_FileSystem_ExecGroup : Permission d'accès en exécution pour les membres du groupe propriétaire #PB_FileSystem_ReadAll : Permission d'accès en lecture pour les autres utilisateurs #PB_FileSystem_WriteAll : Permission d'accès en écriture pour les autres utilisateurs #PB_FileSystem_ExecAll : Permission d'accès en exécution pour les autres utilisateurs
Remarques
Pour vérifier si un attribut est présent,
il suffit d'utiliser l'operateur '&' (And):
Attributs = GetFileAttributes("C:\Text.txt")
If Attributs & #PB_FileSystem_Hidden
Debug "Fichier caché !"
EndIf
Exemple
Attributs = GetFileAttributes("c:\autoexec.bat")
If Attributs = -1
Debug "Erreur à la lecture des attributs du fichier!"
Else
If Attributs & #PB_FileSystem_Hidden : texte$ + "H" : Else : texte$+"-" : EndIf
If Attributs & #PB_FileSystem_Archive : texte$ + "A" : Else : texte$+"-" : EndIf
If Attributs & #PB_FileSystem_Compressed : texte$ + "C" : Else : texte$+"-" : EndIf
If Attributs & #PB_FileSystem_Normal : texte$ + "N" : Else : texte$+"-" : EndIf
If Attributs & #PB_FileSystem_ReadOnly : texte$ + "R" : Else : texte$+"-" : EndIf
If Attributs & #PB_FileSystem_System : texte$ + "S" : Else : texte$+"-" : EndIf
Debug texte$
EndIf
Exemple
Repertoire$ = GetHomeDirectory() ; Liste tous les fichiers et les dossiers du répertoire racine de l'utilisateur qui est actuellement logué (Home)
If ExamineDirectory(0, Repertoire$, "*.*")
While NextDirectoryEntry(0)
If DirectoryEntryType(0) = #PB_DirectoryEntry_File
Type$ = " [Fichier] "
Taille$ = " (Taille : " + DirectoryEntrySize(0) + ")"
Attributs = GetFileAttributes(DirectoryEntryName(0))
If Attributs & #PB_FileSystem_System
Debug "Attribut : Système"
EndIf
Else
Type$ = " [Dossier] "
Taille$ = "" ; Un Dossier n'a pas de taille
Attributs = DirectoryEntryAttributes(0)
If Attributs & #PB_FileSystem_System
Debug "Attribut : Système"
EndIf
EndIf
Debug Type$ + DirectoryEntryName(0) + Taille$
Wend
FinishDirectory(0)
EndIf
Voir aussi
SetFileAttributes(), DirectoryEntryAttributes()
OS Supportés
Tous