初尝filesystem
创建文件夹和文件
std::filesystem::path path("directory");
if(!std::filesystem::exists(path)) {
std::filesystem::create_directory(path);
}
std::filesystem::path file_path = path / "file.txt";
if(!std::filesystem::exists(file_path)) {
std::ofstream out(file_path);
out << "hello";
out.close();
}
检查文件类型
if(std::filesystem::is_regular_file("filesystem.cpp")) {
cout << "regular file\n";
}
if(std::filesystem::is_directory(path)) {
cout << "directory\n";
}
if(std::filesystem::is_empty(path)) {
cout << "directory empty\n";
}
else {
cout << "directory not empty\n";
}
遍历目录
for(auto& entry : std::filesystem::directory_iterator(std::filesystem::current_path())) {
if(entry.is_regular_file()) {
cout << " regular file: " << entry.path() << ", size: " << entry.file_size() << endl;
}
if(entry.is_directory()) {
cout << "directory: " << entry.path() << endl;
}
}
删除文件夹
std::filesystem::remove(path);
std::filesystem::remove_all(path);
remove只能删除空文件夹,如果文件夹非空,要使用remove_all删除。

浙公网安备 33010602011771号