c ++ Boost if .extension()==""这意味着这个文件是一个文件夹?

Kno*_*d V 2 c++ boost

我只是想确认这是一个很好的方法,只允许我只在文件夹上工作,因为我可以看到一种只查找文件夹而不是文件和文件夹的方法.

boost::filesystem::directory_iterator iterator(string("."));
for (; iterator != boost::filesystem::directory_iterator(); ++iterator)
{
    if ((iterator->path().extension()) == "") { 
        cout << (iterator->path().stem()) <<   endl; 
    };
}
Run Code Online (Sandbox Code Playgroud)

lis*_*rus 10

文件可以不带任何扩展名存在,因此不起作用.

看看boost::filesystem::is_directory.


顺便说一句,Boost.Filesystem库被合并到C++ 17标准中.因此,如果您的编译器支持C++ 17,请考虑使用标准库进行文件系统操作.