技术文摘
C/C++获取文件大小的多种方法代码
2025-01-02 04:47:10 小编
C/C++获取文件大小的多种方法代码
在C/C++编程中,获取文件大小是一个常见的操作。下面将介绍几种不同的方法来实现这一功能。
方法一:使用stat结构体(C语言)
在C语言中,可以使用stat函数来获取文件的相关信息,其中就包括文件大小。示例代码如下:
#include <stdio.h>
#include <sys/stat.h>
long getFileSize(const char* fileName) {
struct stat st;
if (stat(fileName, &st) == 0) {
return st.st_size;
} else {
perror("stat");
return -1;
}
}
int main() {
const char* fileName = "test.txt";
long size = getFileSize(fileName);
if (size!= -1) {
printf("文件大小为:%ld字节\n", size);
}
return 0;
}
方法二:使用fseek和ftell函数(C语言)
这种方法通过移动文件指针到文件末尾,然后获取当前位置来确定文件大小。
#include <stdio.h>
long getFileSize(FILE* file) {
long currentPos = ftell(file);
fseek(file, 0, SEEK_END);
long size = ftell(file);
fseek(file, currentPos, SEEK_SET);
return size;
}
int main() {
FILE* file = fopen("test.txt", "r");
if (file!= NULL) {
long size = getFileSize(file);
printf("文件大小为:%ld字节\n", size);
fclose(file);
}
return 0;
}
方法三:使用C++的ifstream(C++)
在C++中,可以利用ifstream来获取文件大小。
#include <iostream>
#include <fstream>
long getFileSize(const std::string& fileName) {
std::ifstream file(fileName, std::ios::ate | std::ios::binary);
if (file.is_open()) {
long size = file.tellg();
file.close();
return size;
} else {
return -1;
}
}
int main() {
std::string fileName = "test.txt";
long size = getFileSize(fileName);
if (size!= -1) {
std::cout << "文件大小为:" << size << "字节" << std::endl;
}
return 0;
}
以上就是C/C++中获取文件大小的几种常见方法,不同的方法适用于不同的场景,开发者可以根据实际需求选择合适的方式。
- CSS top属性用法大揭秘
- CSS中border-right-width属性的使用注意要点
- CSS中letter-spacing属性用法简析
- CSS display属性用法探究
- CSS尺寸属性的用法解析
- CSS绝对定位属性absolute用法的初步探索
- CSS relative相对定位用法剖析
- CSS clip属性用法学习笔记
- CSS overflow属性详解
- 深入了解CSS vertical-align属性的用法
- CSS定位之Positioning详细解析
- CSS border常见简写属性解析
- margin:0px auto居中问题的解决方法
- IE6下CSS兼容性常见问题十大解决技巧
- 轻松九步解决IE6各类疑难杂症