Bonjour,
Je voudrais pouvoir connaitre la taille d'un fichier que j'ouvre en ecriture
Comment faire soit grace à fstream soit grace à wxWidget ?Code:ofstream fichier(nomDuFichier, ios::out | ios::ate);
Merci d'avance
Version imprimable
Bonjour,
Je voudrais pouvoir connaitre la taille d'un fichier que j'ouvre en ecriture
Comment faire soit grace à fstream soit grace à wxWidget ?Code:ofstream fichier(nomDuFichier, ios::out | ios::ate);
Merci d'avance
Salut,
Si je ne me trompe pas, il faut utiliser le seekp de ofstream. Tu fais un seekp à la fin du fichier et la valeur retournée donne directement la taille du fichier.
Oui c'est ce que je fais mais avec mon code :
Et par exemple avec un fichier contenant "Hello" sa me renvoie 4 mais sous windows lorsque que je regarde la taille c'est 1KoCode:
1
2 fichier.seekg(0, ios_base::end); long size = fichier.tellg();
Pourquoi?
Merci
Ça devrait te renvoyer 5, pas 4.
Chez moi en fait ça fait même 6, mon éditeur texte rajoute un retour à la ligne en fin de fichier.
Bah tu ne dois pas regarder au bon endroit.Citation:
mais sous windows lorsque que je regarde la taille c'est 1Ko
Tu confonds taille du fichier et taille utilisée sur le disque.
C'est parce que windows écrit un fichier par blocs de X Ko . Le fichier a une taille sur le disque qui est différente de la taille des données qu'il contient. Si tu fais clique droit sur le fichier et regarde ses propriétés tu verras les deux tailles.
Donc je vois ce que tu veux obtenir c'est la taille sur le disque ?
Il faut faire +1 car les indices commencent a 0...
long size = fichier.tellg() + 1;
salut.
:nono::nono::nono:
:faq:
http://cpp.developpez.com/faq/cpp/?p...HIERS_filesize