C++ 如何使用C++;文件系统检测路径是文件还是目录?
在boost::filesystem库中,是否有任何方法可以确定路径是目录还是文件 我的场景是:我有一些文件夹和文件,我需要所有文件的完整路径并将其推送到vector,所以我这样做: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() ) )
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可以在文件系统中使用管道。