reconnaître d'avance un répertoire en lecture seul

prady92
reconnaître d'avance un répertoire en lecture seul

Bonjour,

1°) j'aimerais savoir comment reconnaître d'avance un répertoire en lecture seul sans devoir attendre le code erreur de retour en tentative d'écriture sur celui-ci comme on peut le faire pour savoir si un fichier est système, archive, lecture, caché.
2°) j'aimerais savoir aussi comment détecter les autorisations (permissions, comptes autorisés) d'écriture sur un répertoire sans devoir attendre le code erreur de retour en tentative d'écriture sur celui-ci comme on le fait pour un fichier.
Cette question est indépendante de la première car le répertoire peut être en lecture/écriture mais que pour certaines personnes donc inutile d'aller plus loin s'il est déjà en lecture seul.

j'ai essayé par le code suivant différents tests:

Dim FolderBrowserDialog1 As FolderBrowserDialog = New FolderBrowserDialog() 
Dim MyAttr As FileAttribute 

If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then 

MyAttr = GetAttr(FolderBrowserDialog1.SelectedPath) 
MsgBox(MyAttr.ToString)   'me retourne Directory 

MsgBox(File.GetAttributes(FolderBrowserDialog1.SelectedPath).ToString) 
 'me retourne Directory 

Dim information As System.IO.FileInfo 
information = 
My.Computer.FileSystem.GetFileInfo(FolderBrowserDialog1.SelectedPath) 
MsgBox(information.IsReadOnly)   'me retourne toujours false même si le 
répertoire est en lecture seul 

End If 

d'avance merci à tous

fredericmazue

Bonjour,

Tu parles comme si Windows était Linux ;) On en est assez loin :twisted:

Si tu regardes les propriétés (sous l'explorateur je veux dire) de n'importe quel répertoire tu verras:

- qu'il est en lecture seule systématiquement.
- que si tu décoches la case et que tu ouvres à nouveau les propriétés, la case "lecture seule" est à nouveau cochée :lol:
- et que malgré ça tout le monde peut déposer quelque chose dans le répertoire. :lol:

Donc ce que te dis FileInfo est juste même si c'est faux parce que normalement la case est cochée et que le répertoire est en lecture seule mais tu peux quand même écrire dedans. (oui faut suivre...)

SAUF si le répertoire est un répertoire utilisateur. Par exemple

c:\\Documents and Settings\prady92

Celui là est en lecture seule effectivement. pas pour toi mais si un utilisateur lambda exécute ton code, là le code doit retourner le flag true.

Je n'avais pas répondu plus tôt à ta question car au départ je croyais que tu demandais sous Vista. Paraît que c'est différent mais je ne sais pas encore. Je ne me sens pas pressé de l'installer :)