OVH Cloud OVH Cloud

Folder protégé en lecture

2 réponses
Avatar
Nono311
Bonsoir,

Y-a-t-il une opération simple pour détecter qu'un folder connu est protégé
(interdit) en lecture pour l'utilisateur d'une macro. Dans ce cas :
Myfolder.Files (par exemple pour essayer d'obtenir la liste des fichiers
contenus dans le Folder Myfolder) plante sur erreur. Sans passer par le
contrôle d'erreur bien sur !

Merci

2 réponses

Avatar
michdenis
Cette procédure n'est valide que pour les répertoires de premier niveau. Elle ne s'applique pas à tous les sous-répertoires.


Salutations!



"michdenis" a écrit dans le message de news:e9%
Bonjour 311,

Affiche seulement les répertoires en lecture seule.
Adapter de l'exemple de l'aide de Vba de Excel.
Tu peux faire une recherche sur Dir

Il ne te reste plus qu'à définir la variable MyPath de la procédure quant au chemin et répertoire que tu veux évaluer.

'-------------------------------------
Sub AfficherRépertoireEnLectureSeule()

Dim MyPath As String, MyName As String
Dim Fs As Object, F As Object
Dim Répertoire As String

Set Fs = CreateObject("Scripting.FileSystemObject")

' Définit le chemin d'accès.
MyPath = "c:toots" 'A définir

' Extrait la première entrée.
MyName = Dir(MyPath, vbDirectory)

' Commence la boucle.
Do While MyName <> ""
' Ignore le dossier courant et le dossier
' contenant le dossier courant.
If MyName <> "." And MyName <> ".." Then
' Utilise une comparaison au niveau du bit pour
' vérifier que MyName est un dossier.
If (GetAttr(MyPath & MyName) _
And vbDirectory) = vbDirectory Then

Set F = Fs.Getfolder(MyPath & MyName)
Select Case F.Attributes
Case 17, 49
Répertoire = Répertoire & MyPath & MyName & vbCrLf
End Select
End If
End If
' Extrait l'entrée suivante.
MyName = Dir
Loop

'Si répertoire n'est pas vide, affichage dans un message box
If Répertoire <> "" Then
MsgBox "Les répertoires en lecture seule de : " & MyPath & vbCrLf _
& vbCrLf & Répertoire, vbInformation + vbOKOnly, "Liste"
Else
MsgBox "Aucun répertoire ayant l'attribut lecture seule."
End If

End Sub
'--------------------------------------


La provenance du chiffre 17 et 49 proviennet de ce tableau des constantes que tu peux retrouver dans l'aide vba excel.
Ces propriétés s'additionnent. À toi de déterminer, les combinaisons d'attributs que tu peux retrouver sur les répertoires
concernées.

En voici 2 pour les fins de cet exemple :

17 = 16 + 1
17 = répertoire + ReadOnly

49 = 16 + 1 + 32
49 = répertoire + ReadOnly + Archive


Constante Valeur Description
Normal 0 Fichier normal. Aucun attribut n'est défini.
ReadOnly 1 Fichier en lecture seule. L'attribut est en lecture/écriture.
Hidden 2 Fichier caché. L'attribut est en lecture/écriture.
System 4 Fichier système. L'attribut est en lecture/écriture.
Volume 8 Étiquette de volume de lecteur de disque. L'attribut est en lecture seule.
Directory 16 Dossier ou répertoire. L'attribut est en lecture seule.
Archive 32 Le fichier a été modifié depuis la dernière sauvegarde. L'attribut est en lecture/écriture.
Alias 64 Lien ou raccourci. L'attribut est en lecture seule.
Compressed 128 Fichier compressé. L'attribut est en lecture seule.


Salutations!



"Nono311" a écrit dans le message de news:
Bonsoir,

Y-a-t-il une opération simple pour détecter qu'un folder connu est protégé
(interdit) en lecture pour l'utilisateur d'une macro. Dans ce cas :
Myfolder.Files (par exemple pour essayer d'obtenir la liste des fichiers
contenus dans le Folder Myfolder) plante sur erreur. Sans passer par le
contrôle d'erreur bien sur !

Merci
Avatar
FxM
Nono311 wrote:

Bonsoir,

Y-a-t-il une opération simple pour détecter qu'un folder connu est protégé
(interdit) en lecture pour l'utilisateur d'une macro. Dans ce cas :
Myfolder.Files (par exemple pour essayer d'obtenir la liste des fichiers
contenus dans le Folder Myfolder) plante sur erreur. Sans passer par le
contrôle d'erreur bien sur !

Merci






Bonsoir,

Pour faire hyper-simple (voire simpliste), regarde déjà le système
d'exploitation. Windows 3, 95, 98, Me, NT3.51 ne permettent pas les
partitions NTFS.
Seules les partitions NTFS (et Linux ?) permettent une restriction en
LECTURE. Les restrictions en écriture peuvent être faites sur toutes
les partitions.

@+
FxM