我怎么知道目录在 C++ 中是否有子目录?
How can I know if directory have children directories in c++?
我想检查目录是否有子目录。
我以为我可以通过 ++operator 找到但是没有成功。
for (auto itr = fs::recursive_directory_iterator(fs::current_path() / path); itr != fs::recursive_directory_iterator(); itr++)
{
if (!(* itr++).exists())
cout <<*itr << endl;
}
有什么建议吗?
A (recursive_)directory_iterator
使您可以访问子项列表,包括文件和目录。由你来区分文件和目录,例如:
bool has_child_directory(const fs::path &dir)
{
for (auto itr = fs::directory_iterator(dir); itr != fs::directory_iterator(); ++itr)
{
if (itr->is_directory())
{
string s = itr->path().string();
if ((s != ".") && (s != ".."))
return true;
}
}
return false;
}
我想检查目录是否有子目录。 我以为我可以通过 ++operator 找到但是没有成功。
for (auto itr = fs::recursive_directory_iterator(fs::current_path() / path); itr != fs::recursive_directory_iterator(); itr++)
{
if (!(* itr++).exists())
cout <<*itr << endl;
}
有什么建议吗?
A (recursive_)directory_iterator
使您可以访问子项列表,包括文件和目录。由你来区分文件和目录,例如:
bool has_child_directory(const fs::path &dir)
{
for (auto itr = fs::directory_iterator(dir); itr != fs::directory_iterator(); ++itr)
{
if (itr->is_directory())
{
string s = itr->path().string();
if ((s != ".") && (s != ".."))
return true;
}
}
return false;
}