技术文摘
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++中获取文件大小的几种常见方法,不同的方法适用于不同的场景,开发者可以根据实际需求选择合适的方式。
- 基于.NET 和 SignalR 构建实时通信应用:前沿技术轻松达成!
- 五张图读懂分布式事务 Saga 模式的状态机
- Go arena 民间库登场,支持手动管理内存!
- Maven 项目中构建与发布过程中文档的生成及管理处理之道
- 为何 Go 语言不允许从 main 包导入函数?
- 探秘阿里巴巴面试之微博设计题
- 2024 年仍用 Lodash?此现代化替代品更安全实用!
- Rust Tokio 处理文件的方法与局限
- 打造本地运行的 LLM 语音助理
- Python 内存优化的七个技巧,您知晓多少?
- 仅用两个 Python 函数几分钟创建完整计算机视觉应用程序的方法
- C#中Dictionary字典:深度剖析与赋值要点
- Python Flask 服务中定时任务执行全攻略
- 面试官:是否知晓缓存击穿、穿透、雪崩?
- 函数指针的若干应用场景