文件操作
C++ 文件与目录操作完整笔记
一、文件操作基础
1.1 文件流类型
ifstream- 输入文件流,用于从文件读取数据ofstream- 输出文件流,用于向文件写入数据fstream- 文件流,支持读写操作
1.2 文件打开方式
- 构造函数方式:
1
ifstream file("filename.txt");
open()方法:1
2ofstream file;
file.open("filename.txt");
1.3 文件读取操作
getline()- 读取一行read()- 二进制读取>>操作符 - 格式化读取get()- 读取单个字符
1.4 文件写入操作
<<操作符 - 格式化写入write()- 二进制写入put()- 写入单个字符
1.5 文件状态检查
is_open()- 检查文件是否打开eof()- 检查是否到达文件末尾good()- 检查流状态是否正常
1.6 文件打开模式
ios::in- 输入模式ios::out- 输出模式ios::app- 追加模式ios::binary- 二进制模式ios::trunc- 截断模式
二、目录操作
2.1 C++17 filesystem 库(现代 C++ 推荐)
基本头文件
1 |
|
基本目录操作
fs::create_directory(path)- 创建目录fs::remove(path)- 删除目录(空目录)fs::remove_all(path)- 删除目录及其内容fs::exists(path)- 检查目录是否存在fs::current_path()- 获取当前工作目录
目录遍历
fs::directory_iterator- 目录迭代器,遍历目录内容fs::recursive_directory_iterator- 递归遍历目录及其子目录
目录信息查询
fs::is_directory(path)- 检查路径是否为目录fs::is_empty(path)- 检查目录是否为空fs::file_size(path)- 获取目录大小
2.2 传统 C 风格方式(C++17 之前)
Windows 平台
_mkdir()/_rmdir()- 创建/删除目录FindFirstFile()/FindNextFile()- 遍历目录
Linux/Unix 平台
<dirent.h>头文件中的函数:opendir()- 打开目录readdir()- 读取目录项closedir()- 关闭目录mkdir()/rmdir()- 创建/删除目录
三、典型操作流程
3.1 文件操作流程
- 创建文件流对象
- 打开文件并检查是否成功
- 执行读写操作
- 关闭文件
3.2 目录操作流程(C++17)
- 包含头文件
<filesystem> - 使用
std::filesystem命名空间 - 调用相应的目录操作函数
四、常用示例代码
4.1 文件读写示例
1 |
|
4.2 目录操作示例(C++17)
1 |
|
五、重要提醒
- **现代 C++**:推荐使用 C++17 的
std::filesystem库进行目录操作 - 跨平台兼容:
std::filesystem提供统一的跨平台接口 - 错误处理:操作文件和目录时要检查操作是否成功
- 资源管理:及时关闭文件流,避免资源泄露
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 naro!




