Dateigröße ?
-
Hi.
Gibt es in C eine Möglichkeit die Größer einer Datei herrauszufinden von der ich nur ihren Speicherort und den Namen habe?
Danke für die Mühe.
-
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> struct stat buf; stat(DATEINAME,&buf); long filesize = buf.st_size;
größe ist in bytes.
müsste klappen
-
futzt perfekt. danke sehr.
-
kein ding
-
Eine Ergänzung: stat() ist keine Funktion des ANSI-Standards, also ist auch nicht garantiert, daß der obige Code überall funktioniert. Kompatibel mit dem Standard funktioniert folgendes (solange du Lese-Rechte für die Datei hast):
#include <stdio.h> FILE* f = fopen(name,"rb"); fseek(f,0,SEEK_END); long size=ftell(f); fclose(f);
-
ja der weg ist elegante und sicherer
-
Ich hab ein ähnliches problem nur ist es so das ftell nur bei Datein kleiner als 2 GB funktioniert. Gibt es eine ähnlich Funktion (protable) die long long als Rückgabetyp hat und mit der man mit Größeren Datein arbeiten kann?
-
decola schrieb:
Ich hab ein ähnliches problem nur ist es so das ftell nur bei Datein kleiner als 2 GB funktioniert. Gibt es eine ähnlich Funktion die long long als Rückgabetyp hat und mit der man mit Größeren Datein arbeiten kann?
http://www.mkssoftware.com/docs/man3/ftell.3.asp
http://linux.about.com/library/cmd/blcmdl3_ftello.htm
-
Ich benutze Dev C++ und das klappt nicht. Darum meine frage wie deklarirt man eine off64_t Variable?
-
decola schrieb:
Ich benutze Dev C++ und das klappt nicht. Darum meine frage wie deklarirt man eine off64_t Variable?
Garnicht.
Grund: Dev C++ kennt off64_t nicht.
-
No Senor schrieb:
decola schrieb:
Ich benutze Dev C++ und das klappt nicht. Darum meine frage wie deklarirt man eine off64_t Variable?
Garnicht.
Grund: Dev C++ kennt off64_t nicht.Also ich hab die Version 4.9.9.2 und da gibt es diesen Typen.
Wird deklariert wie üblich :
off64_t irgendein_name;
-
__int64 _lseeki64( int handle, __int64 offset, int origin );
Windows:
64 Bit seek- Variante, das reicht für ganz schön grooooo000ße Dateien.