Voir et changer les attributs ( lecture seule ; système ; caché ; archive ) d'un fichier

Description

Ce petit programme permet de lire et modifier les attributs des fichiers grâce à 4 checkbox.
<U>verticale et en avant</U>
Pour ce programme, il vous faut :
- 4 chckbox ayant pour propriétées :
- Pour la première : Name = chckHide et caption = "Fichier caché"
- Pour la seconde : Name = chckReadOnly et caption = "Lecture seule"
- Pour la troisième : Name = chckArch et caption = "Archive"
- Pour la dernière : Name = chckSys et caption = "Système"

- Il vous aussi un DriveListBox ayant pour proprités Name = diskPrinc
- Ainsi qu'un DirListBox ayant pour propriétés Name = dosPrinc
- Il vous faut aussi une FileListBox ayant pour propriétés : - Name = filePrinc
- Archive = True
- Hide = True
- ReadOnly = True
- Systeme = True
- Et enfin il vous faut une form :-), avec Name = frmPrinc

Vous pouvez aussi téléchargez le zip. Faîtes cependant attention, il est énorme : 8 Ko, ce qui veut qu'avec un modem 9660 Bytes/s, il vous faudra environ une seconde !!!

Source / Exemple :


Private Sub chckArch_Click()
    chckset
    'si clic sur "Archive", lance, appel la sub "chckset"
End Sub

Private Sub chckHide_Click()
    chckset
    'si clic sur "Fichier caché", lance, appel la sub "chckset"
End Sub

Private Sub chckReadonly_Click()
    'si clic sur "Lecture seule", lance, appel la sub "chckset"
    chckset
End Sub

Private Sub chckSys_Click()
    'si clic sur "Fichier système", lance, appel la sub "chckset"
    chckset
End Sub

Private Sub diskPrinc_Change()
dosPrinc.Path = diskPrinc.Path
'Change le chemin du dosPrinc lorsqu'il y a changement de disque
End Sub

Private Sub dosPrinc_Change()
    frmPrinc.chckHide.Enabled = False
    frmPrinc.chckReadonly.Enabled = False
    frmPrinc.chckArch.Enabled = False
    frmPrinc.chckSys.Enabled = False
    'La  fonction de changement des attribut ne fonctionnant pas avec les répertoires, les cases à cocher sont désactivées.
filePrinc.Path = dosPrinc.Path
'Change le chemin du filePrinc lorsqu'il y a changement de disque
End Sub

Private Sub filePrinc_Click()
    frmPrinc.chckHide.Enabled = True
    frmPrinc.chckReadonly.Enabled = True
    frmPrinc.chckArch.Enabled = True
    frmPrinc.chckSys.Enabled = True
'Réactive les cases à cocher
If Right(frmPrinc.dosPrinc.Path, 1) <> "\" Then
    chemin = frmPrinc.dosPrinc.Path & "\"
Else
    chemin = frmPrinc.dosPrinc.Path
End If
fichier = chemin & filePrinc.filename
chckget (fichier)
'cherche le chemin complet du fichier, et ajoute un "\" si le fichier est situé sur la racine du disque
'puis appelle la procédure chckget avec le chemin complet du fichier
End Sub
Sub chckset()
    attrib = 0
    If frmPrinc.chckHide.Value = 1 Then attrib = attrib + 2
    'si "Fichier caché" est coché, alors ajoute 2 à la valeur "attrib"
    If frmPrinc.chckSys.Value = 1 Then attrib = attrib + 4
    'meme principe que précedement
    If frmPrinc.chckReadonly.Value = 1 Then attrib = attrib + 1
    'de même
    If frmPrinc.chckArch.Value = 1 Then attrib = attrib + 32
    'pareil
    If Right(frmPrinc.dosPrinc.Path, 1) <> "\" Then
        chemin = frmPrinc.dosPrinc.Path & "\"
    Else
        chemin = frmPrinc.dosPrinc.Path
    End If
    fichier = chemin & frmPrinc.filePrinc.filename
    SetAttr fichier, attrib
    'cherche le chemin complet du fichier, et ajoute un "\" si le fichier est situé sur la racine du disque
    'puis appelle la commande SetAttr qui applique le changement

End Sub

Sub chckget(fichier)
attribut = GetAttr(fichier)
Select Case attribut
    Case 0
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 0
    Case 1
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 0
    Case 2
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 0
    Case 3
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 0
    Case 4
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 1
    Case 5
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 1
    Case 6
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 1
    Case 7
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 0
    frmPrinc.chckSys.Value = 1
    Case 32
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 0
    Case 33
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 0
    Case 34
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 0
    Case 35
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 0
    Case 36
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 1
    Case 37
    frmPrinc.chckHide.Value = 0
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 1
    Case 38
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 0
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 1
    Case 39
    frmPrinc.chckHide.Value = 1
    frmPrinc.chckReadonly.Value = 1
    frmPrinc.chckArch.Value = 1
    frmPrinc.chckSys.Value = 1
End Select
'Appel de la commande GetAttr qui permet de connaitre les attribut d'un fichier. Pour mieux comprendre, mieux vaut lire l'aide de VB à ce sujet.
'Traitment de GetAttr au cas par cas, en cochant les options.

End Sub

Private Sub Form_Load()
    frmPrinc.chckHide.Enabled = False
    frmPrinc.chckReadonly.Enabled = False
    frmPrinc.chckArch.Enabled = False
    frmPrinc.chckSys.Enabled = False
    'La  fonction de changement des attribut ne fonctionnant pas avec les répertoires, les cases à cocher sont désactivées, car auchargement, c'est le dosPrinc qui est activé
End Sub

Conclusion :


Voilà, c'est ma première partcipation à ce site. J'espère que vous n'hésiterai pas à commenterrer... euh commenter ce petit code.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.