So ermitteln Sie die Größe einer Datei in der C-Programmierung

So Ermitteln Sie Die Grosse Einer Datei In Der C Programmierung



Sind Sie neu in der C-Programmierung und suchen nach einer Möglichkeit, die Größe einer Datei zu ermitteln? Gehen Sie nirgendwo anders hin! In diesem Leitfaden erfahren Sie, wie Sie in der C-Programmierung die Größe einer Datei ermitteln. Die Anzahl der Bytes, die zum Speichern der Daten in einer Datei verwendet werden, wird als Dateigröße bezeichnet. Wenn Sie die Dateigröße kennen, können Sie verschiedene Dateiverwaltungsvorgänge ausführen, einschließlich Kopieren, Lesen oder Schreiben.

Anhand der in diesem Tutorial erwähnten Schritt-für-Schritt-Anleitungen und einfachen Codebeispiele können Sie schnell die Größe jeder Datei ermitteln.







Ermitteln Sie die Größe einer Datei in der C-Programmierung

Es gibt verschiedene Möglichkeiten, die Größe einer Datei in C zu ermitteln (siehe unten).



1: Verwendung der Funktion stat()

In C ist die einfachste Methode, die Größe einer Datei herauszufinden, die Verwendung von stat() Systemaufruffunktion. Der stat() Die Funktion ruft Dateistatusinformationen ab und speichert sie in einer Struktur. Eines der Mitglieder dieser Struktur ist st_size , was die Größe der Datei in Bytes angibt. Diese Methode vermeidet das manuelle Verschieben des Dateizeigers, wodurch sie einfacher zu verwenden und weniger fehleranfällig ist.



#include
#include

int main ( )
{
Struktur stat st;
lang Größe ;
Wenn ( stat ( „C_File.txt“ , & st ) == 0 )
{
Größe = st.st_size;
printf ( „Die Größe der Datei beträgt %ld Bytes. \N ' , Größe ) ;
}
zurückkehren 0 ;
}


Dieser Code ruft die Größe einer aufgerufenen Datei ab C_File.txt Verwendung der stat() Methode aus der Bibliothek. Der st_size Element der Strukturstatistik, in dem die Funktion die Informationen über die Datei speichert und es uns ermöglicht, die Dateigröße zu ermitteln. Die Größe der Datei wird in der Variablen size und dann beibehalten printf() wird verwendet, um die Größe zusammen mit einer Nachricht an die Konsole zu drucken. Bevor Sie versuchen, auf die zuzugreifen st_size Eigenschaft überprüft die if-Anweisung, dass die stat() Funktionsaufruf war erfolgreich. Der Code gibt dann 0 zurück, um anzuzeigen, dass die Ausführung erfolgreich war.





Ausgang


2: Verwendung der Funktion fstat()

Eine weitere Funktion ähnlich stat() ist der fstat() Funktion, die äquivalent ist zu stat() funktioniert aber mit einer geöffneten Datei anstelle eines Dateinamens. Der fstat() Die Funktion ruft Informationen über die geöffnete Datei ab, die durch beschrieben wird Dateideskriptor darauf übergegangen. Ein Verweis auf eine geöffnete Datei wird durch die Ganzzahl dargestellt Dateideskriptor . ähnlich zu stat(), fstat() gibt die Statusinformationen über die bereitgestellte Datei zurück, einschließlich ihrer Größe in Bytes.



#include
#include
#include

int main ( ) {
int fd;
Struktur stat st;
fd = offen ( „C_File.txt“ , O_RDONLY ) ;
Wenn ( Zustand ( fd, & st ) == - 1 ) {
printf ( „Fehler beim Abrufen der Dateiinformationen. \N ' ) ;
zurückkehren 1 ;
}
printf ( „Die Größe der Datei beträgt %ld Bytes. \N ' , st.st_size ) ;
schließen ( fd ) ;
zurückkehren 0 ;
}


Im obigen Code wird die Datei in diesem Beispiel zunächst durch Aufruf von geöffnet offen() Funktion mit dem Dateinamen und dem O_RDONLY Option, die die Datei im schreibgeschützten Modus öffnet. A Dateideskriptor (fd) wird von der Funktion zurückgegeben. Danach verwenden wir die fstat() Methode, um Informationen über die Datei zu erhalten und sie als Zeiger an die Datei zu senden st Struktur als zweiter Parameter und der Dateideskriptor als erstes Argument. Der st In der Struktur speichert diese Funktion die Informationen der Datei, nachdem sie abgerufen wurde.

Die Größe der Datei in Bytes, die im gespeichert wird st_size Mitglied von st Struktur, wird dann gedruckt, wenn bei der Verwendung kein Fehler aufgetreten ist fstat() Funktion. Andernfalls wird eine Fehlermeldung ausgegeben.

Ausgang


3: Verwenden der Funktionen fseek() und ftell()

Eine andere Methode, die Größe einer Datei in der C-Programmierung zu ermitteln, ist die Verwendung von fseek() Und ftell() Funktionen. Der ftell() Die Methode gibt die aktuelle Position des Dateizeigers zurück, während die Funktion fseek() den Dateizeiger an eine bestimmte Stelle in der Datei verschiebt. Die Größe der Datei in Bytes kann mithilfe von ermittelt werden ftell() Funktion zum Ermitteln der aktuellen Position nach Verwendung der fseek() Funktion zum Verschieben des Dateizeigers an das Ende der Datei.

#include
#include

int main ( )
{
DATEI * fp;
lang Größe ;

fp = fopen ( „C_File.txt“ , „rb“ ) ;
fseek ( fp, 0L, SEEK_END ) ;
Größe = ftell ( fp ) ;
fclose ( fp ) ;
printf ( „Die Größe der Datei = %ld Bytes. \N ' , Größe ) ;

zurückkehren 0 ;
}


Im obigen Code verwenden Sie die fopen() Methode öffnet die Anwendung zuerst die C_File.txt im Binärmodus. Der fseek() Die Funktion verwendet dann die SEEK_END Option zum Verschieben des Dateizeigers an das Ende der Datei. Der aktuelle Speicherort der Datei, der ihrer Größe in Bytes entspricht, kann dann mithilfe von ermittelt werden ftell() Funktion. Der Code verwendet dann die fclose() Methode zum Schließen der Datei nach dem Drucken der Dateigröße auf der Konsole.

Ausgang


4: Verwenden der Funktion filelength()

Die nächste Methode ist die Verwendung der Dateiverwaltungsbibliothek, die viele Funktionen zur Dateibearbeitung bereitstellt, darunter auch Funktionen zum Abrufen die Größe einer Datei . Zum Beispiel die Funktion Dateilänge() gibt die Länge einer Datei in Bytes unter Berücksichtigung ihres Dateinamens zurück. Diese Funktion erfordert die Header-Datei .

Es gibt noch eine weitere Funktion, _filelengthi64(), Gibt die Länge einer Datei in Bytes zurück, für Dateien, die größer als 4 GB sind. Der Unterschied zwischen den beiden Funktionen besteht in der Art ihrer Rückgabewerte, die zeigen, wie viele Bytes die Funktion verarbeiten kann.

#include
#include

int main ( )
{
lang Größe ;
verkohlen * fname = „C_File.txt“ ;
Größe = Dateilänge ( Dateinr ( fopen ( fname, „rb“ ) ) ) ;
printf ( „Die Größe der Datei = %ld Bytes. \N ' , Größe ) ;

zurückkehren 0 ;
}


Die Größe der Datei C_File.txt in Bytes wird von diesem Code mithilfe der Windows-Dateiverwaltungsbibliothek abgerufen. Bei Bereitstellung des Dateideskriptors einer geöffneten Datei, der Methode Dateilänge() gibt die Länge der Datei in Bytes zurück.

fopen() öffnet die Datei in diesem Code im schreibgeschützten Binärmodus und fileno() gibt den Dateideskriptor der geöffneten Datei zurück. Dann, printf() wird zum Ausdrucken der Dateigröße verwendet. Die Funktion gibt dann 0 zurück, was anzeigt, dass sie erfolgreich ausgeführt wurde.

Ausgang


Abschluss

Es gibt mehrere Methoden, um das zu finden Größe einer Datei in Bytes in C , jedes mit seinen eigenen Vor- und Nachteilen. Im obigen Tutorial werden vier verschiedene Methoden besprochen. stat() Funktion, fstat() Funktion, fseek() Und ftell() Funktionen und die Dateilänge() Funktion. Wenn Benutzer diese Funktionen verstehen, können sie die Größe jeder Datei auf Ihrem System ermitteln.