Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Corrigez mon code? Comment récupérer la taille d'un fichier? [ Archives / API ] (supergrey)

vendredi 28 octobre 2005 à 13:17:33 | Corrigez mon code? Comment récupérer la taille d'un fichier?

supergrey

Bonjour j'utilise pour l'instant la fonction suivante pour récupérer la taille d'un fichier:
 
DWORD TailleFichier(char* str_NomFichier)
{
    HANDLE hFile;
    //ouverture du fichier
    hFile = CreateFile(str_NomFichier ,
        GENERIC_READ ,
        0 ,    NULL , OPEN_ALWAYS ,
        FILE_ATTRIBUTE_NORMAL ,    NULL );
 
    DWORD Taille = GetFileSize(hFile,NULL);    //mesure la taille du fichier

    CloseHandle( hFile );    //fermeture du fichier
 
    return Taille;
}


Le probleme c'est qu'elle a tendance a retourner une taille nulle. Je pensais que le fichier était déja ouvert en ecriture mais ce n'est pas ca est-ce que mon code est mauvais? Est-ce qu'il y a une meilleur methode ?
Merci


vendredi 28 octobre 2005 à 14:20:59 | Re : Corrigez mon code? Comment récupérer la taille d'un fichier?

AlexMAN

Membre Club
Assure toi que le fichier existe bien, car avec le flag OPEN_ALWAYS, si le fichier n'existe pas, il sera créé, avec une taille nulle donc.
Tu n'as qu'a remplacer OPEN_ALWAYS par OPEN_EXISTING, et tester apres CreateFile() si le handle renvoyé est correct. (if (INVALID_HANDLE_VALUE == hFile) return -1; par exemple).


+2(p - n)

vendredi 28 octobre 2005 à 14:22:55 | Re : Corrigez mon code? Comment récupérer la taille d'un fichier?

BruNews

Administrateur CodeS-SourceS
DWORD TailleFichier(char* str_NomFichier)
{
  HANDLE hFile;
  DWORD Taille;
  //ouverture du fichier
  hFile = CreateFile(str_NomFichier, GENERIC_READ,
        FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
  if(hFile == INVALID_HANDLE_VALUE) return 0;
  Taille = GetFileSize(hFile,NULL);
  CloseHandle(hFile);  //fermeture du fichier
  return Taille;
}

Faudrait prendre l'habitude de calculer sur 64 bits, nous sommes fin 2005 et les fichiers > 4 Go deviennent monnaie courante.

ciao...
[ Lien ]
BruNews, MVP VC++



Cette discussion est classé dans : fichier, récupérer, taille, code, hfile


Répondre à ce message

Sujets en rapport avec ce message

envoi de fichier par socket [ par Anacr0x ] bon vouala, j'ai crée un serveur et un client, tt se passe bien, il parle entre eux et tt et tt. Par contre, quan je veu envoyer un fichier, ca merd ! Récupérer taille d'un méga fichier [ par Weedy_59 ] Enfin j'aurai peut-etre dus écrire en titre, avoir la taille d'un Giga fichier, lol. Oui mon problème c'est que je n'arrive pas à récupérer la taille QWORD ? [ par Ziman ] Bonjour,j'aimerai récupérer la taille d'un fichier, j'utilise donc GetFileSize() après l'avoir ouvert avec CreateFile(). Pour les petits fichiers, ben Malloc et mémoire affectée [ par Chop_chop ] Bonjour,J'ai un petit soucis quant à l'allocation de mémoire pour un char* avec l'utilisation de malloc.Voici mon code (bien allégé) :[CODE] char *fic fstream, >> et << [ par Roro8883 ] Bonjour à tous !J'ai un problème dans mon code avec la fonction fstream.Ca fait depuis un moment que je suis dessus et je trouve pas le problème.Si qu Parcours de fichier [ par mmx1 ] Bonjour, j'ai un petit code qui prend en paramètre un fichier txt et qui créer un fichier du même nom mais en .rawje voudrais ne plus utiliser ces par Taille fichier inculde [ par vbnino ] Salut! -Quand j'inclus par exemple "iostream" et que je ne l'utilise pas, Est-ce-que cela augmentera la taille du fichier quand il sera compilé?-Merci Récupération d'infos dans un fichier [ par totoscill ] Bonjour,je développe un programme pour récupérer des informations dans un fichier. Les infos récupérer seront ensuite traité.Pour cela mon programme m aide pour changer plice taille et couleur des caractères dans un fichier text [ par achatagogo ] salutj'ai besoin de votre aide pour changer de plice et la taille des caracrtères sur DEV c++.sous WIndowsje crée un fichier avec createFile() ensuite


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.