Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用C++;文件系统检测路径是文件还是目录?_C++_Boost - Fatal编程技术网

C++ 如何使用C++;文件系统检测路径是文件还是目录?

C++ 如何使用C++;文件系统检测路径是文件还是目录?,c++,boost,C++,Boost,在boost::filesystem库中,是否有任何方法可以确定路径是目录还是文件 我的场景是:我有一些文件夹和文件,我需要所有文件的完整路径并将其推送到vector,所以我这样做: for ( boost::filesystem::recursive_directory_iterator end, dir(pathBase); dir != end; ++dir ) { if ( boost::filesystem::exists( dir->path() ) )

在boost::filesystem库中,是否有任何方法可以确定路径是目录还是文件

我的场景是:我有一些文件夹和文件,我需要所有文件的完整路径并将其推送到vector,所以我这样做:

for ( boost::filesystem::recursive_directory_iterator end, dir(pathBase);
    dir != end; ++dir ) {
    if ( boost::filesystem::exists( dir->path() ) )
    {
        std::cout << dir->path() << "\n";  // full path
        filenames.push_back(dir->path().string());
    }
  }
for(boost::filesystem::recursive\u directory\u迭代器end,dir(pathBase));
dir!=结束;++dir){
如果(boost::filesystem::exists(dir->path()))
{
std::cout path()path().string());
}
}
问题是
exists
方法检查目录或文件是否存在,并且无法检测其类型(文件或目录)


那么如何使用boost library仅获取文件呢?

这听起来像是您需要的。

阅读手册?谢谢,我已经搜索了is_文件,但显然它在库中不存在。听说过
operator?@tambre:不幸的是,这并没有那么容易(将
的结果转换为\u目录
)。有些路径既不是目录也不是常规文件,例如
@ChristianHackl:我很确定
都是目录<代码>C:
另一方面不是。linux可以在文件系统中使用管道。