c语言怎么样获取文件大小
- 行业动态
- 2024-03-21
- 1
在C语言中,我们可以使用标准库中的fseek
和ftell
函数来获取文件的大小,这两个函数分别用于设置文件的位置指针和获取当前位置指针的值,通过将位置指针移动到文件末尾,然后获取其值,即可得到文件的大小。
以下是一个简单的示例,演示了如何使用C语言获取文件大小:
#include <stdio.h> long getFileSize(FILE *file) { long currentPosition, fileSize; // 获取当前位置指针的值 currentPosition = ftell(file); // 将位置指针移动到文件末尾 fseek(file, 0, SEEK_END); // 获取文件大小 fileSize = ftell(file); // 将位置指针恢复到原来的位置 fseek(file, currentPosition, SEEK_SET); return fileSize; } int main() { FILE *file = fopen("example.txt", "r"); if (file == NULL) { printf("无法打开文件! "); return 1; } long fileSize = getFileSize(file); printf("文件大小为:%ld 字节 ", fileSize); fclose(file); return 0; }
在这个示例中,我们首先包含了stdio.h
头文件,以便使用FILE
结构体、fopen
、fclose
、fseek
和ftell
等函数,接着,我们定义了一个名为getFileSize
的函数,该函数接受一个指向FILE
结构体的指针作为参数,在函数内部,我们首先使用ftell
函数获取当前位置指针的值,并将其存储在变量currentPosition
中,我们使用fseek
函数将位置指针移动到文件末尾,并再次使用ftell
函数获取位置指针的值,将其存储在变量fileSize
中,我们将位置指针恢复到原来的位置,并返回文件大小。
在main
函数中,我们使用fopen
函数打开一个名为example.txt
的文件,并将其内容设置为只读模式,如果文件打开失败,我们将输出一条错误消息并返回1,接下来,我们调用getFileSize
函数获取文件的大小,并将结果存储在变量fileSize
中,我们输出文件大小,并使用fclose
函数关闭文件。
注意:在使用这个示例时,请确保你的工作目录中有一个名为example.txt
的文件,如果没有,你可以创建一个空文件或者将代码中的文件名更改为你自己的文件名,这个示例仅适用于文本文件,对于二进制文件或特殊类型的文件,可能需要使用其他方法来获取文件大小。