IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Compter le nombre de sous-repertoires


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Points : 136
    Points
    136
    Par défaut Compter le nombre de sous-repertoires
    Voila dans une fonction pour compter le nombre de sous-repertoire d'un répertoire sélectionné par l'utilisateur, je testes la propriété Attr pour savoir si le fichier regardé est un répertoire :

    Propriété Attr : (cf aide Delphi)

    Attr Type fichier

    $00000001 | Fichiers en lecture seule
    $00000002 | Fichiers cachés
    $00000004 | Fichiers système
    $00000008 | Fichier ID de volume
    $00000010 | Fichiers répertoire
    $00000020 | Fichier archive
    $0000003F | Tout fichier


    Au debut j'avais fait le test Attr = $00000010 pour savoir si c'était un répertoire.

    Cela comptait la majorité des répertoires mais pas les répertoires archives.

    Du coup j'ai fait le test Attr = $00000030 ( repertoire + fichier archive )

    cela en comptait plus mais je me rends compte alors que cela ne prends pas en compte les repertoires en lecture seule, les repertoires systemes et les repertoires cachés.

    Cela rajoute 3 combinaisons, sans oublié que l'on peut avoir des repertoires archives systemes en lecture seule cachés. Ca fait beaucoup de combinaisons à tester. Je voulais savoir s'il y a une autre solution plus simple a mettre en place pour n'oublier aucun type de répertoire. Merci d'avance d'avoir pris le temps de lire ce message.

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Moi je ferais ma boucle sur tous les fichiers et pour chacun d'entre eux je ferais un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if DirectoryExists(...) then ...
    (g pas teste mais je pense que DirectoryExists repond true meme si le rep est cache, archive ou autre.
    (si tu as une erreur de 2 repertoire c'est parceque ca compte les repertoire "." et "..")

  3. #3
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Ce n'est pas comme ça qu'on utilise les valeurs énumérées. Il te suffit de faire un et logique et de vérifier que le résultat n'est pas nul :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if Attr and faDirectory <> 0 then

  4. #4
    Membre habitué
    Inscrit en
    Juin 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 165
    Points : 136
    Points
    136
    Par défaut
    Merci beaucoup je vais tester . Je mets le tag "résolu" en attendant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2000] Compter le nombre de sous dossier dans un dossier
    Par neno69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/01/2019, 18h53
  2. [XL-2003] Compter le nombre de sous-lignes non vides entre deux colonnes
    Par Augustine1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/07/2012, 14h40
  3. Perl - Compter le nombre de sous dossier
    Par magzz69 dans le forum Langage
    Réponses: 7
    Dernier message: 18/08/2009, 16h57
  4. Réponses: 10
    Dernier message: 07/01/2009, 10h20
  5. Nombre de sous répertoire autorisés
    Par cathou9999 dans le forum Shell et commandes GNU
    Réponses: 20
    Dernier message: 20/02/2006, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo