技术文摘
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;
}
不同的方法适用于不同的场景,开发者可以根据实际需求选择合适的方式来获取文件大小,以提高程序的效率和可维护性。
- php函数对象编程指南有哪些替代方案
- Python: Working with CSV, JSON, and Binary Files
- C语言条件编译疑难问题逐个攻克,打造高效代码
- 深入探究php闭包原理
- php闭包内存管理
- 跨平台开发中 PHP 函数对象编程指南的兼容性探讨
- 深入探究 Python 封装:掌握私有成员与受保护成员
- C语言多线程编程:问题解决的实践与艺术
- 从新手入门到实战应用:C语言条件编译详尽指南
- C语言数据结构:面向对象编程下数据结构最佳实践方式
- C语言数据结构及其在人工智能中的关键作用
- PHP 匿名函数中闭包的运用
- C语言文件操作之文件读取方法
- C语言条件编译:抽丝剥茧,彻底化解疑难
- Python获取器更新:获取BoardGameGeek数据