C++17将文件系统的操作封装了进来,从而可以跨平台的操作文件系统:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <filesystem>
using namespace std::filesystem;
using namespace std;
int main()
{
create_directories("./sandbox/a/b"); //在当前目录下创建层级目录sandbox/a/b
create_directory("./sandbox/a/c"); //在sandbox/a目录下创建目录c
cout<<is_directory("./sandbox/a/b")<<std::endl; //输出:1
remove_all("./sandbox/a/c"); //删除目录sandbox/c
cout<<is_directory("./sandbox/c")<<std::endl; //输出:0
rename("./sandbox/a/b", "./sandbox/a/x");//将sandbox/a/b改名为sandbox/a/x
directory_iterator iterDir("./"); //遍历目录
for (auto &it: iterDir)
{
cout << "file path:"<< it.path().string() << endl;
cout << "file name:"<< it.path().filename().string() << endl;
}
return 0;
}
运行程序输出:
1
0
file path:./one.cpp
file name:one.cpp...