技术文摘
C++获取文件大小的常用技巧分享
2025-01-01 23:59:09 小编
C++获取文件大小的常用技巧分享
在C++编程中,经常会遇到需要获取文件大小的情况,比如在文件处理、数据存储等应用场景中。下面将为大家分享几种C++中获取文件大小的常用技巧。
方法一:使用stat结构体
在C++中,可以利用<sys/stat.h>头文件中的stat函数来获取文件的详细信息,其中就包括文件大小。示例代码如下:
#include <iostream>
#include <sys/stat.h>
int main() {
struct stat fileStat;
const char* filePath = "example.txt";
if (stat(filePath, &fileStat) == 0) {
std::cout << "文件大小: " << fileStat.st_size << " 字节" << std::endl;
} else {
std::cerr << "获取文件大小失败" << std::endl;
}
return 0;
}
这种方法适用于大多数Unix-like系统和Windows系统。
方法二:使用fseek和ftell函数(针对文件流)
当通过文件流操作文件时,可以结合fseek和ftell函数来获取文件大小。示例代码如下:
#include <iostream>
#include <cstdio>
int main() {
FILE* file = fopen("example.txt", "rb");
if (file!= NULL) {
fseek(file, 0, SEEK_END);
long fileSize = ftell(file);
fclose(file);
std::cout << "文件大小: " << fileSize << " 字节" << std::endl;
} else {
std::cerr << "打开文件失败" << std::endl;
}
return 0;
}
这种方法主要用于以C风格的文件流方式操作文件。
方法三:使用C++标准库的文件流
在C++标准库中,也可以通过ifstream来获取文件大小。示例代码如下:
#include <iostream>
#include <fstream>
int main() {
std::ifstream file("example.txt", std::ios::binary | std::ios::ate);
if (file.is_open()) {
std::streampos fileSize = file.tellg();
std::cout << "文件大小: " << fileSize << " 字节" << std::endl;
file.close();
} else {
std::cerr << "打开文件失败" << std::endl;
}
return 0;
}
不同的方法适用于不同的场景,开发者可以根据实际需求选择合适的方式来获取文件大小,以提高程序的效率和可维护性。
- Eclipse 插件安装的八种途径汇总
- ASP 中字符与数字的内置操作函数汇总
- Postman 基本用法深度解析
- .net 中 AutoMapper 实现对象映射与相互转换的操作之道
- Visual Studio 中.sln 文件与.vcxproj 文件的差异
- 解决 IDEA 编写 SQL 语句无提示的办法
- git stash 的使用场景与常见方法全面解析
- .NET 中高精度定时器的实现思路
- WebForm 中使用 Ajax 访问后端接口的两种方法归纳
- RSA 加密解密算法的应用与延伸探索
- ASP.NET MVC 与 EntityFramework 图片头像上传功能的实现
- 前端 vscode 必装插件(开发必备)
- Hash 算法示例的应用场景及延伸探讨
- DELETE 请求通过 ajax 发送的方法总结
- $.ajax 中 contentType 的使用剖析