C++11文件目录操作简介

本文介绍C++11引入的文件系统标准库,包括路径操作、文件检查、目录创建与删除等功能,适用于C++17及以后版本。通过实例展示了如何使用path类进行路径解析,以及通用函数如exists、file_size等进行文件属性检查。
摘要由CSDN通过智能技术生成

文件目录操作有很多方式,有许多Windows API可用,不过用起来不是那么方便。今天说一下C++11提供的文件目录操作的标准库。

头文件与命名空间:

头文件只需要#include <filesystem>

C++11时还在TR2里面

C++11的命名空间std::tr2::sys

C++17时已经正式引入了

C++17的命名空间为std::filesystem

路径类path:

路径使用的是path类,可以直接用字符串构造如:   sys::path test_file("D:\\a\\b.txt");

路径包含许多常用操作,比如

获取根目录root_path()

获取带扩展名的文件名filename()

获取不带扩展名的文件名stem()

获取扩展名extension()

获取父目录parent_path()

是否是绝对路径 is_absolute()

转成字符串string()

通用函数:

文件是否存在exists

文件大小file_size

文件修改时间last_write_time

创建单个目录create_directory

递归创建目录create_directories

删除目录remove_directory

删除文件Remove

递归删除目录remove_all

重命名Rename

拷贝文件copy_file

是否是目录is_directory

目录遍历:

遍历目录可以用迭代器方式遍历:

sys::path src_dir("F:\\download");//或者const string src_dir = "F:\\download";
set<string> dir_set;
for (sys::directory_iterator end, ite(src_dir); ite != end; ++ite)
{
    if(!is_directory(ite->path()))
        dir_set.insert(ite->path().filename().string());
};

另一种是递归遍历目录 只需要把directory_iterator改成recursive_directory_iterator就可以了:

for (sys::recursive_directory_iterator end, ite(src_dir); ite != end; ++ite)
{
    if(!is_directory(ite->path()))
        dir_set.insert(ite->path().filename().string());
}

Filesystem基本上涵盖了常用的文件操作,满足项目需求,还有很多非常用的比如权限、软链接、磁盘空间、目录拼接等等都有,详细的内容可以直接看filesystem头文件或者查看官方文档。

Dev C++是一个集成开发环境(IDE),用于C和C++编程。它提供了许多功能和工具,包括文件操作。下面是一些关于Dev C++文件操作的介绍: 1. 打开文件:使用`fopen`函数可以打开一个文件。例如,要打开一个名为"example.txt"的文本文件,可以使用以下代码: ```c FILE *file = fopen("example.txt", "r"); ``` 这将返回一个指向文件的指针。 2. 关闭文件:使用`fclose`函数可以关闭一个已打开的文件。例如,要关闭之前打开的文件,可以使用以下代码: ```c fclose(file); ``` 3. 读取文件内容:使用`fscanf`函数可以从文件中读取内容。例如,要从文件中读取一个整数,可以使用以下代码: ```c int num; fscanf(file, "%d", &num); ``` 4. 写入文件内容:使用`fprintf`函数可以向文件中写入内容。例如,要向文件中写入一个字符串,可以使用以下代码: ```c fprintf(file, "Hello, World!"); ``` 5. 检查文件结尾:使用`feof`函数可以检查是否已到达文件的结尾。例如,要检查是否已到达文件的结尾,可以使用以下代码: ```c if (feof(file)) { printf("已到达文件结尾\n"); } ``` 6. 检查文件是否成功打开:在打开文件时,可以检查返回的文件指针是否为NULL,以确定文件是否成功打开。例如,可以使用以下代码: ```c if (file == NULL) { printf("无法打开文件\n"); } ``` 这些是Dev C++中文件操作的基本介绍。你可以使用这些函数来读取和写入文件内容。如果你有其他关于Dev C++文件操作的问题,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值