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.


Anmelden zum Antworten