查找任意文件大小的程序

CBeginner
立即练习

介绍

在本实验中,我们将学习如何在 C 编程语言中查找任何文件的大小。我们将使用 fseek()ftell() 函数来查找文件的大小。

注意:你需要自己创建文件 ~/project/main.c 来练习编码,并学习如何使用 gcc 编译和运行它。

cd ~/project
## 创建 main.c
touch main.c
## 编译 main.c
gcc main.c -o main
## 运行 main
./main

包含头文件

我们将从包含所需的头文件 stdio.hstdlib.h 开始。

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

创建 main() 函数

接下来,我们将创建 main() 函数,它是我们 C 程序的入口点。

int main()
{
    return 0;
}

定义变量

现在,我们将定义所需的变量。我们需要一个 FILE 指针来保存文件。我们还需要一个 char 变量来保存读取文件时的当前字符。最后,我们需要一个整数 size 来保存文件的大小。

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

打开文件

现在,我们将使用 fopen() 函数打开文件,并检查文件是否成功打开。

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

if (fp == NULL)
{
    printf("\nFile unable to open...\n");
    return 1;
}
else
{
    printf("\nFile opened...\n");
}

移动文件指针

现在,我们将使用 fseek() 函数将文件指针移动到文件的末尾。

fseek(fp, 0, 2);

获取文件大小

接下来,我们将使用 ftell() 函数获取文件指针的当前位置,并将其存储在 size 变量中。

size = ftell(fp);

打印文件大小

最后,我们将使用 printf() 函数打印文件的大小。

printf("The size of given file is: %d bytes\n", size);

关闭文件

我们已经完成了对文件的操作,现在将使用 fclose() 函数关闭文件。

fclose(fp);

完整程序代码

以下是用于查找任何文件大小的 C 程序的完整代码。

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

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

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

    if (fp == NULL)
    {
        printf("\nFile unable to open...\n");
        return 1;
    }
    else
    {
        printf("\nFile opened...\n");
    }

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

    printf("The size of given file is: %d bytes\n", size);

    fclose(fp);

    return 0;
}

总结

在本实验中,我们学习了如何使用 C 编程语言中的 fseek()ftell() 函数来查找任何文件的大小。我们涵盖了以下主题:

  • 包含头文件
  • 创建 main() 函数
  • 定义变量
  • 打开文件
  • 移动文件指针
  • 获取文件大小
  • 打印文件大小
  • 关闭文件

在读取或写入文件后,始终关闭文件是一个良好的实践。