#include<filesystem>//c++17标准
里面包含的主要函数有:
说明以下函数都是在filesystem命名空间下的
?exists("路径") 判断是不是存在这个文件夹(做个安全隐患)
create_directory("文件名")创建一个文件名这个名字的文件夹
filesystem::create_directory("a");
if (!filesystem::exists("a"))
{
cout << "文件不存在" << endl;
}
create_directories("a/b/c")创建一个a文件夹里面有b文件夹b里面有c文件夹
filesystem::create_directories("a/b/c");
remove_all(文件名)//函数递归去删除文件夹(包括文件夹下面的所有)
filesystem::remove_all("a");
//删除a文件夹下所有文件夹(包括a)
filesystem下的path类
//构造一个path路径
filesystem::path url("boxFile");
//当前程序路径
filesystem::path curURL = filesystem::current_path();
cout <<"当前路径:\t"<< curURL << endl;
cout << "当前路径:\t" << curURL.string() << endl;
cout << "根目录:\t\t" << curURL.root_directory() << endl;
cout << "相对路径:\t" << curURL.relative_path() << endl;
cout << "根名:\t\t" << curURL.root_name() << endl;
cout << "根路径\t\t" << curURL.root_path() << endl;
?? ?directory_iterator:遍历文件
void testfilesystem()//遍历的是当前目录下的文件
{
filesystem::path url("D:\\Users\\asus\\source\\repos\\DIJkstre算法\\DIJkstre算法");
if (!filesystem::exists(url))
{
cout << "文件不存在" << endl;
}
filesystem::directory_iterator in(url);
for (auto v : in)
{
cout << v.path().filename() << endl;
}
}
删除目录中所有文件
void deletefile()
{
filesystem::path url = filesystem::current_path();
cout << url << endl;
set<string>dirset;//存入所有入径
for (filesystem::directory_iterator begin(url), end; begin != end; begin++)
{
dirset.insert(begin->path().filename().string());
}
for (auto v : dirset)
{
filesystem::remove_all(url / v);
}
}
|