Dateigröße mit stat() in C/C++ ermitteln
English
Deutsch
Problem:
Du möchtest stat() aus dem POSIX-Header sys/stat.h verwenden, um die Größe einer Datei zu ermitteln.
Lösung
Verwende diese Funktion:
get_filesize_stat.cpp
#include <sys/stat.h>
/**
* Ermittelt die Größe einer Datei.
* @return Die Dateigröße, oder 0 wenn die Datei nicht existiert.
*/
size_t getFilesize(const char* filename) {
struct stat st;
if(stat(filename, &st) != 0) {
return 0;
}
return st.st_size;
}Wenn du C++ std::string für den Dateinamen anstelle von char* verwenden möchtest, kannst du stattdessen diese äquivalente Funktion verwenden:
get_filesize_stat_string.cpp
#include <sys/stat.h>
/**
* Ermittelt die Größe einer Datei.
* @param filename Der Name der Datei, deren Größe geprüft werden soll
* @return Die Dateigröße, oder 0 wenn die Datei nicht existiert.
*/
size_t getFilesize(const std::string& filename) {
struct stat st;
if(stat(filename.c_str(), &st) != 0) {
return 0;
}
return st.st_size;
}Diese Funktionen geben exakt die gleiche Zahl zurück, als ob du -sb auf der gleichen Datei ausgeführt würde.
Eine detaillierte stat()-Referenz findest du auf der Opengroup-Seite zu stat
Check out similar posts by category:
C/C++
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow