Programm zur Ermittlung der Größe einer beliebigen Datei

CCBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man die Größe einer beliebigen Datei in der C-Programmiersprache ermittelt. Wir werden die Funktionen fseek() und ftell() verwenden, um die Größe der Datei zu ermitteln.

Hinweis: Sie müssen die Datei ~/project/main.c selbst erstellen, um zu üben und zu lernen, wie man sie mit gcc kompiliert und ausführt.

cd ~/project
## main.c erstellen
touch main.c
## main.c kompilieren
gcc main.c -o main
## main ausführen
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/PointersandMemoryGroup(["Pointers and Memory"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/if_else("If...Else") c/PointersandMemoryGroup -.-> c/pointers("Pointers") c/PointersandMemoryGroup -.-> c/memory_address("Memory Address") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FileHandlingGroup -.-> c/write_to_files("Write To Files") c/FileHandlingGroup -.-> c/create_files("Create Files") c/FileHandlingGroup -.-> c/read_files("Read Files") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/if_else -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/pointers -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/memory_address -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/function_declaration -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/write_to_files -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/create_files -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/read_files -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} c/output -.-> lab-123313{{"Programm zur Ermittlung der Größe einer beliebigen Datei"}} end

Headerdateien einbinden

Wir beginnen, indem wir die erforderlichen Headerdateien stdio.h und stdlib.h einbinden.

#include<stdio.h>
#include<stdlib.h>

main()-Funktion erstellen

Als nächstes werden wir die main()-Funktion erstellen, die der Einstiegspunkt unseres C-Programms ist.

int main()
{
    return 0;
}

Variablen definieren

Jetzt werden wir die erforderlichen Variablen definieren. Wir brauchen einen FILE-Zeiger, um die Datei zu halten. Wir brauchen auch eine char-Variable, um das aktuelle Zeichen zu speichern, während wir die Datei lesen. Schließlich brauchen wir eine Ganzzahl size, um die Größe der Datei zu speichern.

FILE *fp;
char ch;
int size = 0;

Die Datei öffnen

Jetzt werden wir die Datei mit der fopen()-Funktion öffnen und überprüfen, ob die Datei erfolgreich geöffnet wurde oder nicht.

fp = fopen("MyFile.txt", "r");

if (fp == NULL)
{
    printf("\nDatei konnte nicht geöffnet werden...\n");
    return 1;
}
else
{
    printf("\nDatei geöffnet...\n");
}

Den Dateizeiger verschieben

Wir werden nun den Dateizeiger an das Ende der Datei mit der fseek()-Funktion verschieben.

fseek(fp, 0, 2);

Die Größe der Datei ermitteln

Als nächstes werden wir die aktuelle Position des Dateizeigers mit der ftell()-Funktion ermitteln und sie in die Variable size speichern.

size = ftell(fp);

Die Größe der Datei ausgeben

Schließlich werden wir die Größe der Datei mit der printf()-Funktion ausgeben.

printf("Die Größe der angegebenen Datei beträgt: %d Bytes\n", size);

Die Datei schließen

Wir haben mit der Datei fertig, also werden wir sie mit der fclose()-Funktion schließen.

fclose(fp);

Vollständiger Programmcode

Hier ist der vollständige Code des C-Programms, um die Größe einer beliebigen Datei zu ermitteln.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char ch;
    int size = 0;

    fp = fopen("MyFile.txt", "r");

    if (fp == NULL)
    {
        printf("\nDatei kann nicht geöffnet werden...\n");
        return 1;
    }
    else
    {
        printf("\nDatei geöffnet...\n");
    }

    fseek(fp, 0, 2);
    size = ftell(fp);

    printf("Die Größe der angegebenen Datei beträgt: %d Bytes\n", size);

    fclose(fp);

    return 0;
}

Zusammenfassung

In diesem Lab haben wir gelernt, wie man in der C-Programmiersprache die Größe einer beliebigen Datei mit den Funktionen fseek() und ftell() ermittelt. Wir haben die folgenden Themen behandelt:

  • Einbinden von Header-Dateien
  • Erstellen der main()-Funktion
  • Definieren von Variablen
  • Öffnen der Datei
  • Verschieben des Dateizeigers
  • Ermitteln der Dateigröße
  • Ausgeben der Dateigröße
  • Schließen der Datei

Es ist eine gute Praxis, die Datei immer nach dem Lesen oder Schreiben zu schließen.