查找任意文件大小的程序

CCBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

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

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

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("`C`")) -.-> c/BasicsGroup(["`Basics`"]) c(("`C`")) -.-> c/ControlFlowGroup(["`Control Flow`"]) c(("`C`")) -.-> c/PointersandMemoryGroup(["`Pointers and Memory`"]) c(("`C`")) -.-> c/FunctionsGroup(["`Functions`"]) c(("`C`")) -.-> c/FileHandlingGroup(["`File Handling`"]) c(("`C`")) -.-> c/UserInteractionGroup(["`User Interaction`"]) 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{{"`查找任意文件大小的程序`"}} c/if_else -.-> lab-123313{{"`查找任意文件大小的程序`"}} c/pointers -.-> lab-123313{{"`查找任意文件大小的程序`"}} c/memory_address -.-> lab-123313{{"`查找任意文件大小的程序`"}} c/function_declaration -.-> lab-123313{{"`查找任意文件大小的程序`"}} c/write_to_files -.-> lab-123313{{"`查找任意文件大小的程序`"}} c/create_files -.-> lab-123313{{"`查找任意文件大小的程序`"}} c/read_files -.-> lab-123313{{"`查找任意文件大小的程序`"}} c/output -.-> lab-123313{{"`查找任意文件大小的程序`"}} end

包含头文件

我们将从包含所需的头文件 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() 函数
  • 定义变量
  • 打开文件
  • 移动文件指针
  • 获取文件大小
  • 打印文件大小
  • 关闭文件

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

您可能感兴趣的其他 C 教程