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 :

Comment connaître l'espace disque occupé par un fichier ?


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 20
    Points : 19
    Points
    19
    Par défaut Comment connaître l'espace disque occupé par un fichier ?
    Bonjour
    comment pouvons nous connaitre (avec Delphi bien sûr) la taille occupé par un fichier sur disque !!!
    Attention je veux pas de FileSize car cette fonction (ainsi que le TSearchRec) retourne la longeur du fichier (taille du fichier) en octet mais ne donne pas l'espace disque occupé par ce fichier à cause de l'histoire d'occupation TOTALE de secteurs et de clusters.
    Quelcun aurait t'il connaissance d'une fonction (ou API) qui permettrait de récupérer celà ?
    pour les néophites je m'explique en détail : quand vous selectionnez un fichier dans l'explorateur windows, et que vous faites
    [MOUSE BOUTON DROIT+ Propriétés] vous obtenez dans la fen de prop deux grandeurs nommées :
    TAILLE (qui correspond à ce que retourne le TSearchRec, c'est à dire la longeur en Octet
    et une deuxieme grandeur
    TAILLE SUR LE DISQUE qui correspond à l'espace occupé sur le disque par votre fichier en fonction de sa taille et de la taille des clusters du sys de fichier utilisé !!!! et c'est CETTE GRANDEUR que je veux récupérer

    HELP ... please

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Il faut arrondir à la taille des clusters. Si tu es en FAT32 par exemple, chaque cluster fait 16 Ko. Essaie de trouver comment récupérer la taille des clusters, ou tout au moins le système de fichiers. Ensuite, c'est juste une division...

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    La taille des clusters dépend de la taille des partitions et du file systeme, et n'est pas toujours de 16Ko. De plus lors du formatage, on peut choisir entre différentes tailles de cluster.

    http://support.microsoft.com/default.aspx?scid=kb;en-us;314878

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2003
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Merci ... c bien ce que je pensais. Il suffit de calculer en Alignant par rapport à un nombre entier de secteur (arrondi par exces).
    Pour avoir les info du disque il suffit d'utiliser la fonction du SDK windows
    GetDiskFreeSpace qui retourne les infos du disque et notement la taille des cluster en byte
    PS. Microsoft continuera tjr à nous ettonner avec les NOMs choisis pour les fonctions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BOOL GetDiskFreeSpace(
     
        LPCTSTR lpRootPathName,	// address of root path 
        LPDWORD lpSectorsPerCluster,	// address of sectors per cluster 
        LPDWORD lpBytesPerSector,	// address of bytes per sector 
        LPDWORD lpNumberOfFreeClusters,	// address of number of free clusters  
        LPDWORD lpTotalNumberOfClusters 	// address of total number of clusters  
       );

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    Cool, je me demandais comment récupérer cette info facilement.

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

Discussions similaires

  1. JMX & JIMS : Comment connaître { CPU+Espace Disque+La RAM + Rtt ping } ?
    Par ght3k7 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 04/08/2007, 13h00
  2. [JVM]Espace mémoire occupé par un objet
    Par devtele dans le forum Général Java
    Réponses: 6
    Dernier message: 29/12/2005, 23h15
  3. Espace disque occupé par les données
    Par klereth dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/12/2005, 13h18
  4. Comment déterminer l'espace disque de tous les lecteurs
    Par ZeKudjat dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/01/2005, 15h19
  5. visualiser l'espace disque occupé par ma base
    Par superdada dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 08/01/2004, 14h59

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