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

C++ Discussion :

taille d'un répertoire


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 245
    Points : 320
    Points
    320
    Par défaut taille d'un répertoire
    Bonjour,
    Alors voila a partir d'un programme visual basic j'aimerais appeler une fonction dans une dll créée en C (j'ai suivi le tutoriel dans la FAQ).

    Par contre j'ai un problème pour calculer la taille du répertoire spécifié.

    Depuis VB j'appelle ma fonction "taille = TailleRepertoire(chemin)"

    dans mon code C, j'ai ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include "def.h"
     
    long size;
     
    long __stdcall TailleRepertoire(LPSTR lpStrPath)
    {
       size = 0;
     
      return size;
    }
    Par contre, c'est ici que j'ai un problème, que dois-je mettre pour récupérer la liste des fichiers et ajouter leur taille ?

    J'ai essayé de cumuler les 2 fonctions de la FAQ C (récupérer la liste des fichiers d'un répertoire et trouver la taille d'un fichier) mais ca ne marche pas.

    Si vous avez un exemple de code simple (pas forcément hyper optimisé car les répertoires ne contiennent au maximum qu'une trentaine de fichiers).

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Et bien montre nous comment tu as mixé les 2 routines, car ça devrait fonctionner normalement.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 245
    Points : 320
    Points
    320
    Par défaut
    voila le code:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    	long savepos, size;
    	strcat(path,lpStrPath);
    	strcat(path, "*.*");
    	hSearch=FindFirstFile(path, &File);
    	if (hSearch == INVALID_HANDLE_VALUE)
    	{
    		return FALSE;
    	} 
    	re=TRUE;
    	size = 0;
    	do
    	{
    		/* Traitement */
     
    	               savepos = ftell(fd); /* sauvegarder la position */
                                   fseek(fd, 0, SEEK_END); /* aller en fin */
                                   size+= ftell(fd); /* lire la taille */
                                   fseek(fd, savepos, SEEK_SET); /* rétablir la position */
            	               re = FindNextFile(hSearch, &File);
    	} while (re);
    	FindClose(hSearch);
     
    	return size;
    Le problème c'est que je ne sais pas comment recopier le nom du fichier trouvé par la fonction FindFirstFile et FindNextFile dans fd.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    D'ou sort fd ? fd est censé être un FILE* renvoyé par fopen après avoir ouvert le fichier donné par FindFirstFile/FindNextFile. Mais surtout tu n'en n'as pas besoin, la strcuture File renvoyée contient déjà l'information que tu cherches!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    size = 0; 
    do 
    { 
        size += File.nFileSizeLow;
    } while ( FindNextFile(hSearch, &File) ); 
    FindClose(hSearch);

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

Discussions similaires

  1. Calcul de la taille d'un répertoire
    Par fdthierry dans le forum Langage
    Réponses: 5
    Dernier message: 07/07/2008, 15h28
  2. Taille d'un répertoire
    Par delph1983 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 27/04/2006, 09h30
  3. Récuprérer la taille d'un répertoire
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 03/02/2006, 19h17
  4. Réponses: 8
    Dernier message: 13/06/2005, 13h48
  5. Taille d'un répertoire
    Par Faiseur dans le forum Assembleur
    Réponses: 2
    Dernier message: 26/12/2004, 23h54

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