Dateigröße erkennen

Wie kann man mit C die Größe einer Datei erkennen oder ob sie einen Inhalt hat.

hi,

schau die doch mal die funktion stat() an …
man stat

Wie kann man mit C die Größe einer Datei erkennen oder ob sie
einen Inhalt hat.

Huhu :smile:

Wie mein Vorschreiber schon sagte, gibt es die „stat()“-Funktion. Diese ist leider nicht C/C++ Standard, sondern wird von einigen Compilern angeboten, von anderen nicht. Wenn du sicher gehen möchtest, dann ermittelst du die Dateigröße z.B. wie folgt:

#include 
void main()
{
 FILE \*file= fopen( "datei.xyz", "rb" ); //Datei zum Lesen öffnen.
 if (0==file)
 { //Fehler, die Datei konnte nicht geöffnet werden
 }
 fseek( file, 0, SEEK\_END ); //Dateizeiger ans Ende setzen
 size\_t fileSize= ftell( file ); //Dateizeiger abfragen
 fclose( file ); //Datei wieder schließen
}

Falls die Datei nicht geöffnet werden konnte, hast du entweder keine Zugriffsberechtigung oder sie existiert nicht.

Viele Grüße

Stefan.

Probs mal mit dieser - selbst geschriebenen - Funktion:

int GetFileSize( AnsiString filename )
{
WIN32_FIND_DATA ffdata;
HANDLE hFindFile;

hFindFile = ::FindFirstFile( filename.c_str(), &ffdata );
if ( hFindFile == INVALID_HANDLE_VALUE )
return -1;

int result = ffdata.nFileSizeLow;

::FindClose( hFindFile );

return result;
}

In diesem Sinne…

Daystalker

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]