Access
Accessible = Access ( Path AS String [ , Mode AS Integer ] ) AS Boolean
Retourne si le fichier spécifié par
Path est accessible selon le mode spécifié par
Mode.
Si la valeur de
Mode est :
- gb.Read, retourne TRUE si le fichier est accessible en lecture.
- gb.Write, retourne TRUE si le fichier est accessible en écriture.
- gb.Exec, retourne TRUE si le fichier est un exécutable.
Les drapeaux précédents peuvent être combinés avec l'opérateur
OR.
- gb.Read, est le comportement par défaut si l'argument optionnel Mode n'est pas spécifié.
Pour un répertoire, le drapeau d'exécution signifie que le répertoire peut être parcouru.
Exemple
PRINT Access("/home/benoit", gb.Write OR gb.Exec)
True
PUBLIC SUB Button1_Click()
DIM sPath AS String
sPath = "/root/bin"
PRINT sPath; " RW "; Access(sPath, gb.Read OR gb.write)
PRINT sPath; " R "; Access(sPath, gb.Read)
PRINT sPath; " W "; Access(sPath, gb.write)
PRINT sPath; " "; Access(sPath)
END
/root/bin RW False
/root/bin R True
/root/bin W False
/root/bin True
 |
Tous les fichiers dans le répertoire d'un projet (incluant tout sous-répertoire créé dans le répertoire du projet) sont traités comme étant accessibles en lecture seul, quelque soit le mode spécifié, même si leur mode de permission est à 777 (accès total en lecture/écriture pour le propriétaire, le groupe et les autres), (c.a.d. Access("img/myImage.png") ne retournera jamais gb.write).
En voici la raison : lors de la fabrication du fichier exécutable, tous les fichiers du projet sont placés dans l’exécutable, et ne peuvent donc être modifiés à l’exécution.
Utilisez des fichiers temporaires ou utilisez un répertoire spécial (fichier indexé par un point) dans le dossier personnel de l'utilisateur (c.a.d.: l'utilisateur exécutant le programme en [....def/gambas).
PRINT Access("data/img/myImage.png", gb.Write)
False ' Même après avoir fait : chmod 777 "PathToMyProject/img/myImage.png"
|