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 :

[FindFirst] Comment obtenir la taille d'un répertoire ?


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Points : 91
    Points
    91
    Par défaut [FindFirst] Comment obtenir la taille d'un répertoire ?
    Bonjour a tous !

    Avec la fonction FindFirst j'extrait la Date/Heure et la Taille de certains fichiers qui sont stocké dans une TListView, seulement voila, dans cette liste il n'y a pas que des fichiers, il y a aussi des repertoires, et quand je veut extraire des attributs de repertoire, il me renvoie juste la Date/Heure , mais pour la Taille il me renvoie 0, alors quand c'est un repertoire du type C:\WINNT, il y a un gros probleme, par ce que celui-ci ne fait pas 0 octets.

    Voici la procedure qui extrait les attribut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure TForm2.EnabledClick(Sender: TObject); 
    var I: Integer; PropertyF: TSearchRec; 
    begin 
        for I:=0 to ListView1.Items.Count-1 do 
        begin 
            if ListView1.Items[I].Selected then ListView1.Items[I].SubItems[1]:='Oui'; 
            if FindFirst(ListView1.Items[I].Caption,faAnyFile,PropertyF)=0 then 
            begin 
                Prop[I,0]:=PropertyF.Time; 
                Prop[I,1]:=PropertyF.Size; 
                FindClose(PropertyF); 
            end; 
        end; 
        Apply.Enabled:=True; 
    end;
    Nota : J'ai bien entendus essayer avec faAnyfile+faDirectory, et aussi avec faDirectory tout seul, et bien sur cela n'a rien donné, et il convient de dire que FindFirst me renvoie bien 0, étant donné que la Date/Heure est extraite.

    Si je pourrais avoir de l'aide cela serait super sympa, merci a tous !

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Non, c'est normal. Un répertoire fait bien zéro octets de longueur, parceque ce n'est pas un fichier. Tu confonds avec la taille des données contenues dans ce répertoire.

    Pour obtenir l'information que tu cherches, il te faut parcourir ton répertoire de manière récursive, et additionner toutes les tailles de tous les fichiers (et des fichiers des sous-répertoires).

    Tu n'as pas remarqué que lorsque tu demandais la taille d'un gros répertoire à Windows (Clic droit -> propriétés), le résultat prenait souvent plusieurs secondes, et que tu voyais le chiffre augmenter au fur et à mesure ? C'est parceque Windows va justement "scanner" le répertoire pour obtenir cette information.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2004
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 146
    Points : 91
    Points
    91
    Par défaut
    Merci pour ta réponse, et malheureusement je m'en doutais un peu, mais je voulais en être sur, surtout que scanner tout le repertoire et additionné toutes les tailles me demandera beaucoup de ressource systeme, alors je vais y reflechir a 2 fois.

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par TOTO32
    Merci pour ta réponse, et malheureusement je m'en doutais un peu, mais je voulais en être sur, surtout que scanner tout le repertoire et additionné toutes les tailles me demandera beaucoup de ressource systeme, alors je vais y reflechir a 2 fois.
    Oh non pas tant que ça... Surtout si ce n'est que pour récupérer la taille des fichiers...
    Ceci dit, un conseil: mets ce traitement dans un thread...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Je vais surement dire une connerie car je n'est pas cherché sur le net.
    Le fichier "Thumbs.db" de windows XP ne contiendrais pas cette information (je crois qu'il stocke la mise en forme de l'affichage du navigateur de répertoire mais pourquoi pas de l'espace).
    Il suffirait de faire une recherche de ce fichier et si il 'existe pas, de faire ce que vous dite (parcours récursif).

    Mais bon, je dis ca à l'arrache donc je ne sais pas ce que contient ce fichier.

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Euh je ne sais pas ce que contient ce fichier mais je ne vois pas pourquoi tu ne fais pas cette recherche... Elle n'est pas trop dure à mettre en place, même dans un thread...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Je disais ça juste a titre d'info. car peut être que ce fichier sert "aussi" à ca, (peut être pas) et si oui, autant utiliser ce qui est prévu.

  8. #8
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Arrown
    Je disais ça juste a titre d'info. car peut être que ce fichier sert "aussi" à ca, (peut être pas) et si oui, autant utiliser ce qui est prévu.
    A ma connaissance, il n'existe que s'il y a des images, c'est un cache pour les miniatures (thumbnails) qu'affiche Windows. Et tu n'es pas certain qu'il soit à jour, en plus.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  9. #9
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par Mac LAK
    A ma connaissance, il n'existe que s'il y a des images, c'est un cache pour les miniatures (thumbnails) qu'affiche Windows. Et tu n'es pas certain qu'il soit à jour, en plus.
    C'est aussi ce que je pensais... C'est moins casse-gueule de faire ton traitement... Ca marchera à coup sur...
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

Discussions similaires

  1. Comment obtenir la taille du mon disque dur ?
    Par samerkouta dans le forum Débuter
    Réponses: 4
    Dernier message: 04/11/2007, 12h25
  2. Comment calculer la taille d'un répertoire
    Par waldoun dans le forum Langage
    Réponses: 7
    Dernier message: 14/09/2007, 15h54
  3. Comment obtenir la taille d'un fichier?
    Par Bruno29 dans le forum Flash
    Réponses: 3
    Dernier message: 16/01/2007, 20h05

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