Cette exemple explique comment scanner un répertoire et ces sous répertoires, rechercher les attributs des fichiers qu'ils contiennent et les modifier...
Programmation > Visual Basic
Recherche :   
Actualité Système Salon Concours Outils Programmation Devparadise Programmation HTML .Net JavaScript VBScript ASP PHP Visual Basic Perl Java Active X SQL XML WAP Delphi Graphisme Flash Web Design Promotion Référencement Publicité Valeur de votre site Outils Systèmes Windows Unix Linux Benchmark Hardware Réseaux locaux Droit Sécurité
Contrôleur d'attributs
  Auteur : Eric PETIT

Cette exemple explique comment scanner un répertoire et ces sous répertoires, rechercher les attributs des fichiers qu'ils contiennent et les modifier...

Publicité 
  1. Objets utilisés

    1. Un contrôle "DriveListBox" nommé "Disque_Lst"
    2. Un contrôle "DirListBox" nommé "Repertoire_Lst"
    3. Quatre contrôles "OptionButton" nommé "AttribSrc_Rad" indexé
    4. Quatre contrôles "CheckBox" nommé "Attrib_Chk" indexé
    5. Un contrôle "CheckBox" nommé "Option_Chk"
    6. Un contrôle "TextBox" nommé "Ext_Txt"
    7. Un contrôle "Label" nommé "Status_Lbl"
    8. Un contrôle "CommandButton" nommé "Control_Cmd"
    9. Un contrôle "CommandButton" nommé "Quitter_Cmd"

  2. Les principales fonctions

    1. Scanner un répertoire

      Pour scanner un répertoire, il faut utiliser la fonction DIR.
      Cette fonction nécessite un ou deux paramètres: le répertoire à lister et (facultatif) le type de fichier à lister.
      Dir retourne le premier fichier trouvé, pour avoir le second, il faut rappeler la fonction dir sans paramètre.

      Exemple:
         Fichier = Dir("c:\", 2) ' renvoi le premier fichier caché de c:
      puis
         Fichier2 = Dir ' renvoi le second fichier caché de "c:\"

      Le type de fichier peut être:
         - 0 Normal
         - 1 Lecture seule
         - 2 Fichier caché
         - 4 Fichier système
         - 8 Nom de volume ; si cette valeur est indiquée, le répertoire est ignoré
         - 16 Répertoire
         - 32 Archive

      Ainsi Dir("c:\", 16) renvoi les sous répertoires de "c:\"

      En partant du répertoire MonRep, nous pouvons donc obtenir tous ces sous répertoires, puis les sous répertoires des sous répertoires...
      Nous avons donc essayé de mettre en place une fonction récursive.

         Principe simplifié:
         function ssrep(Monrep)
            rep = Dir(Monrep, 16)
            while rep <> ""
               ssrep(Monrep & rep)
               rep = Dir
            wend
         end function

      L'expérience a été malheureuse, la ligne 'rep = Dir' ne fonctionne plus lorsque l'on revient à la fonction d'origine.
      C'est pourquoi nous avont choisi de créer un tableau contenant les répertoires.

         MesRep(0) = RepertoireDOrigine
         NbRep = 1

         Recherche des sous répertoires des répertoires 0 à nbrep - 1 (ex 3 résultats)

         MesRep(0) = RepertoireDOrigine
         MesRep(1) = SousRep1
         MesRep(2) = SousRep2
         MesRep(3) = SousRep3
         NbRep = 4

         Recherche des sous répertoires des répertoires 1 à nbrep - 1

         et ainsi de suite...

         Nous pouvons ensuite effectuer une boucle sur ce tableau; scanner chacun des répertoires obtenus pour trouver les fichiers et contrôler leurs attributs.

    2. Lire et modifier un attribut

      Pour lire un attribut, nous utiliserons la fonction:
      GetAttr à laquelle il faut passer le chemin et le nom du fichier. Et qui retourne la valeur de l'attribut.

      Pour écrire un attribut, nous utiliserons l'instruction:
      SetAttr à laquelle il faut passer le chemin et le nom du fichier, ainsi que le nouvelle attribut (ex: 33 pour lecture seule et archive).

Le source complet est disponible dans la logithèque de devparadise.com.

N'hésitez pas à nous faire part de vos améliorations:    

  • Limitation, pour éviter les modifications dans le répertoire windows    
  • Prise en compte de la date de création des fichiers    
  • Mise à jour de la date de création des fichiers    
  • ...

  • A lire aussi sur Devparadise.com :
  • Création d’une DLL en C# .Net 2.0
  • Httrack (3.40) Un aspirateur OpenSource
  • Sauvegarder les pièces jointes des messages d'un dossier Outlook
  • Upload de plusieurs fichiers en PHP4.
  • Utilisation de l'utilitaire HTMLDOC
  • A télécharger aussi sur Devparadise.com :
  • Exemple de Dll .Net 2.0
  • FCKeditor 2.4.3
  • Framakey 1.0.5 RC1
  • source de l'article "Boîtes de contenu flottantes"
  • InstallRite 2.5

  • © 1997-2005 tous droits réservés Devparadise.com
    Les logos, et marques déposées sont la propriété de leurs détenteurs respectifs.
    Devparadise.com s'est engagé à respecter la confidentialité des données personnelles régies par la loi 78-17 du 6 janvier 1978.
    Déclaration C.N.I.L. n° 621623
    fichier,attribut,archive,lecture seul,CDRom,source,vb,visual basic,DIR