Page 1 sur 1

[..]Ecriture lecture

Posté : jeu. 28 mai 2009 14:59
par jcaspar
B :D onjour à tous !

Je souhaiterais pouvoir tester si un repertoire est accessible en
lecture et en ecriture ?

Cela est il possible avec autoit ?

Merci d'avance pour vos idées et suggestions :P

Jean Marc

Re: [..]Ecriture lecture

Posté : jeu. 28 mai 2009 17:45
par jumby
Bonjour,

Je te propose d'utiliser filegetattrib, si cette fonction retourne la valeur "R", le répertoire est "READONLY" ce qui sous entend que l'on ne peut pas écrire dans ce répertoire. Si cette fonction retourne la valeur "D", le chemin indiqué correspond à celui d'un répertoire.

Voici le détail :
"R" = READONLY
"A" = ARCHIVE
"S" = SYSTEM
"H" = HIDDEN
"N" = NORMAL
"D" = DIRECTORY
"O" = OFFLINE
"C" = COMPRESSED (NTFS compression, not ZIP compression)
"T" = TEMPORARY

On peut imaginer le code suivant :

Code : Tout sélectionner

$testattribdir  = FileGetAttrib ( "dossiertest" )

if $testattribdir = "RD" Then
MsgBox(0, "Readonly", "Le répertoire est accessible en lecture, mais n'est pas accessible en écriture")
EndIf

if $testattribdir = "D" Then
MsgBox(0, "Readonly", "Le répertoire est accessible en lecture et écriture")
EndIf
 

Re: [..]Ecriture lecture

Posté : jeu. 28 mai 2009 20:55
par Tlem
Attention ... La solution de jumby est presque bonne, mais présente un gros défaut.
Si le répertoire à un autre attribut que R ou D alors la condition n'est plus bonne.

En fait, pour tester l'attribut d'un fichier ou d'un dossier, il faut regarder dans la chaîne retournée par FileGetAttrib si ce dernier est présent grace à la fonction StringInStr (un seul attribut à la fois).
Regardez l'exemple dans la documentation de la commande FileGetAttrib.