发布日期:2018-03-26
在标准C++中如何递归地迭代每个文件及目录+ 查看更多
在标准C++中如何递归地迭代每个文件及目录
+ 查看更多
发布日期:2018-02-26 13:58
分类:CPlusPlus
浏览次数:137
在标准C++中如何递归地迭代每个文件及目录
回答
在标准C++中,从技术角度来说没有这种方法,因为标准C++没有目录的概念。
如果你想扩展自己库的功能,你可以用 Boost.FileSystem。
它已经被TR2(C++ Technical Report 2)接受,所以这样就能尽可能地使你的接口保持接近标准。
如果你想扩展自己库的功能,你可以用 Boost.FileSystem。
它已经被TR2(C++ Technical Report 2)接受,所以这样就能尽可能地使你的接口保持接近标准。
举个例子,这个例子是直接从网站上拿过来的:
bool find_file( const path & dir_path, // in this directory, const std::string & file_name, // search for this name, path & path_found ) // placing path here if found { if ( !exists( dir_path ) ) return false; directory_iterator end_itr; // default construction yields past-the-end for ( directory_iterator itr( dir_path ); itr != end_itr; ++itr ) { if ( is_directory(itr->status()) ) { if ( find_file( itr->path(), file_name, path_found ) ) return true; } else if ( itr->leaf() == file_name ) // see below { path_found = itr->path(); return true; } } return false; }