Dateigrösse herausfinden?
-
Hallou
Ich würde gern wissen, wie ich in C++ die grösse einer datei (in kb oder mb) herausfinden kann
Danke
-
mit stat kannst Du das.
int stat(char *file_name, struct stat *buf);
int fstat(char *filedescriptor, struct stat *buf);in dem struct buf gibt es dann die größe in Bytes
struct stat
{
(...)
off_t st_size;
(...)
}Für alles andere musst Du leider googeln oder die manpage konsultieren, da ich die korrekte Verwendung gerade nicht im Kopf habe.
Gruß,
Gwar
-
Du kannst auch die Datei normal mit _open oeffnen und mit _lseek ans Ende springen. Mit dem Rueckgabewert davon bekommst du die Anzahl der Bytes heraus.
-
Ist stat() Standard? Wenn nicht, zu welchem OS gehört die Funktion?
MfG SideWinder
-
SideWinder schrieb:
Ist stat() Standard?
Ja. Allerdings nicht ISO/IEC 14882 sondern POSIX.1
Wenn nicht, zu welchem OS gehört die Funktion?
Zu allen die in diesem Punkt POSIX-konform sind
Du kannst auch die Datei normal mit _open oeffnen und mit _lseek ans Ende springen. Mit dem Rueckgabewert davon bekommst du die Anzahl der Bytes heraus.
Warum dann nicht gleich die Standard-C++ Funktionen verwenden (siehe FAQ-Beitrag Ströme und Dateien). Mal davon abgesehen, dass du so nicht garantiert die Größe einer Datei bestimmen kannst.