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

<- GetExtensionPart() - FileSystem Index - GetFileDate() ->