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

Delphi Discussion :

Nombre de fichiers et répertoires contenus dans une partition


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut Nombre de fichiers et répertoires contenus dans une partition
    Bonjour à tous,

    Savez vous s'il y a une méthode plus rapide de connaître le nombre de fichiers et de répertoires présents sur une partition sans utiliser une procédure (récursive) explorant tous les fichiers contenus dans les dossiers et ses sous-dossiers(avec findfirst et findnext).

    Merci
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Points : 86
    Points
    86
    Par défaut
    Pas à ma connaissance Et je pense que non. Car visiblement quand tu fais bouton droit propriété sur "program files" il met bien 15-20 secondes a lister le nombre de fichiers... Donc m'est avis que windows le fait comme ca

    Maintenant c'est la manière dont tu va faire ton algorithme qui risque d'influer sur le temps que ca va prendre.

    Enfin je laisse les autres répondres .. dès fois qu'ils ait une recette magique. Sinon ben FindFirst, FindNext .. et oublie pas FindClose pour libérer la mémoire sinon ca risque de prendre de la place

    Edit : Par contre je suis pas certain que si c'est la vitesse que tu cherche, la recursivité soit la meilleure solution. Vu le nombre de repertoires sur un disque, si il doit a chaque fois sauver le contexte a chaque appel tu risque de perdre pas mal de temps. Il faudrait voir le gain de vitesse en remplacant la recusrsivité par une pile.

    Edit2 : Oups je me suis réveillé a 2h du mat juste pour modifier ca. Je suis pas persuadé que tu y gagne en vitesse en passant par une pile. Car tu devrai faire appel a des methode push/pop qui risquent de prendre plus de temps que ce que tu gagne en changements de contexte .. mais ca coute rien d'essayer (sauf un peu de temps )

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Merci hy00ga pour ta réponse, je vais regarder pour le remplacement par une pile.

    Sinon c'est bien la vitesse que je cherche car je souhaite connaître cette information rapidement afin de gérer une progress bar pour un traitement plus long sur ces mêmes fichiers.

    Et tant que je n'ai pas cette information sur le nombre de fichiers , je ne peux pas lancer ma progress bar.

    Merci

    A+
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Si ton objectif est seulement une progress bar...
    et toujours sur une partition complete et l'ensemble complet
    de ses fichiers,

    tu peux le faire beaucoup plus rapidement en passant par
    le l'espace disque total et epace disque Libre...

    DiskSize te retourne l'espace total d'une partition...
    DiskFree te retourne l'espace disque libre...

    DiskUse=DiskSize-DiskFree

    pour chaque fichier traité tu fais avancer ton progress bar
    en fonction des bytes traité ou simplement avec la grosseur
    total du fichier FileSize te retourne la grosseur d'un fichiers...

    je sais pas si cette idée te plait?
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Bonsoir,

    Effectivement, c'est exactement ce que je cherche à faire.

    Je trouvais dommage d'effectuer 2 explorations complêtes de la partition, une pour estimer la charge et une autre pour le traitement.

    Merci pour l'astuce.

    A+
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Points : 86
    Points
    86
    Par défaut
    Rhooo... j'aurais pas pensé a cela pas bête ... pas bête du tout

    En plus de cela c'est nettement plus juste car un fichier de 2Go fera avancer la barre nettement plus qu'un fichier de 1ko. Par contre la progression ne sera pas linéaire ... A voir ce que l'on veut

    Mais je note l'astuce .. merci

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

Discussions similaires

  1. [XL-MAC 2011] Condition sur le nombre d'items contenus dans une liste déroulante
    Par xixil dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2013, 18h55
  2. nombre de fichiers de repertoires contenus dans une liste
    Par morty dans le forum Général Python
    Réponses: 3
    Dernier message: 12/06/2009, 01h46
  3. stocker le nombre de fichier de chaque type dans une table de hach
    Par niklos0 dans le forum Programmation et administration système
    Réponses: 7
    Dernier message: 24/09/2008, 15h34
  4. Réponses: 1
    Dernier message: 18/07/2008, 13h26
  5. Réponses: 21
    Dernier message: 05/06/2006, 10h49

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