1. 简介
使用C++编程,经常涉及到对文件的相关操作,例如,判断文件是否存在、获取文件所在的路径名、遍历某个目录下的所有文件、创建新的目录等。在旧风格的C++编程中,一般通过操作系统提供的API、字符串操作等实现上述功能。
C++11 提供的<filesystem> 头文件提供了丰富的文件操作的类和函数。filesystem 库是一个可一直的文件系统操作相关的库,使用POSIX标准表示文件系统的路径,支持多种操作系统平台,因此使用filesystem可以编写跨平台操作目录,文件的C++程序。本文对<filesystem>常用的path 和 wpath 作个简单的介绍。
2. path
在<filesystem>中,最常用的应该是basic_path 模板类。该类提供了对路径的相关操作,其定义如下所示:
template<class String, class Traits> class basic_path;在实际使用中,我们经常会使用 path 或 wpath 而不是 basic_path,前两者是对basic_path的类型的定义
typedef basic_path<string, path_traits> path;
typedef basic_path<wstring, wpath_traits> wpath;
很明显的可以看出,path用于string的操作,而 wpath用于处理 wstring 路径。常用的操作如示例代码所示: