Mettre en lecture seul dossier et fichier [Résolu]

Signaler
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005
-
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
-
Bonjour je pense ne pas avoir mi mon autre message au bonne endroit
alors je vais le mettre ici puisque je suis pas mal désespéré :p



étant un débutant en programmation jarrive pas a trouvé comment faire
pour mettre un dossier et ses fichier/sous dossier en lecture
seule,



j'offre ma gratitude éternel a celui qui arrivera a me sortir du pétrin :p



merci d'avance

sylbar

13 réponses

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
il doit y avoir des dossiers avec attribut caché ou systéme ???

Private Sub SetAttributs(dossier As String)
Dim i As Integer
Dim nb As Integer
Dim Table() As String
Dim fichier As String

nb = 1
ReDim Table(1)
Table(1) = dossier


While i < nb
i = i + 1
dossier = Table(i)
If Left$(dossier, 1) <> "" Then dossier = dossier & ""
fichier = Dir(dossier & "*.*", vbDirectory Or vbHidden Or vbSystem)
Do Until fichier = ""
If Asc(fichier) <> 46 Then
If (GetAttr(dossier & fichier) And &H10) = vbDirectory Then
nb = nb + 1
ReDim Preserve Table(nb)
Table(nb) = dossier & fichier
Else
SetAttr dossier & fichier, vbReadOnly
End If
End If
fichier = Dir()
Loop
Wend

End Sub


Private Sub Form_Load()
SetAttributs Command$
End Sub

Daniel
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
ça doit être à cause de la ligne SetAttributs Command$
c'est ce qui récupère le paramètre passé au programme mais au départ Command$ est vide et j'ai pas mis de routine d'erreur.
enlève le et lance la procédure avec un bouton:

Private Sub Command1_Click()
SetAttributs "C:\formulaire"
End Sub

Daniel
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
SetAttr chemin, vbReadOnly

Daniel
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
exact, tu apelles la fonction par:
SetAttributs "c:\test "

Daniel
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005

oki mais le problème c'est qu'il ne mettra que "chemin" en lecture
seule et moi je dois aussi mettre tout ce qu'il contien en lecture
seule ( dossier sous dossier ficher etc)
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
Private Sub SetAttributs(dossier As String)
Dim i As Integer
Dim nb As Integer
Dim Table() As String
Dim fichier As String

nb = 1
ReDim Preserve Table(1)
Table(1) = dossier

While i < nb
i = i + 1
dossier = Table(i)
If Left$(dossier, 1) <> "" Then dossier = dossier & ""
fichier = Dir(dossier & "*.*", vbDirectory)
Do Until fichier = ""
If Asc(fichier) <> 46 Then
If GetAttr(dossier & fichier) = vbDirectory Then
nb = nb + 1
ReDim Preserve Table(nb)
Table(nb) = dossier & fichier
Else
SetAttr dossier & fichier, vbReadOnly
End If
End If
fichier = Dir()
Loop
Wend

End Sub

Daniel
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005

oki je remplace Dossier par c:\test je suppose
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005

non en faite je passe le chemin en paramèrtre dans mon programme

SetAttributs ("c:\Formulaire")

il rentre dans la fonctions mais les fichers et tout sont toujours pas en lecture seule :-/
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005

en fesant du pas a pas jai remarqué qu'il n'allais pas plus loin que la premiere couche

c:\formulaire\..... meme si il reste de dossier ensuite il ne se rend pas a l'intérieure de ceux ci
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005

non c'est simplement des dossier contenant des fichier excel rien de système ou de fichier caché
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005

avec le nouveau code ya une erreur a cette ligne

If (GetAttr(dossier & fichier) And &H10) = vbDirectory



invalide provedure call or argument
Messages postés
14
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
20 décembre 2005

voila sa marche nickel

*s'incline a ses pieds* un grand merci a toi :)
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
28
n'oublie pas de cocher réponse acceptée et va voir dans ta boîte.

Daniel