C++ 中Boost 文件操作

版权声明:本文为博主原创文章,转载请注明出处:https://blog.csdn.net/qq_31261509 https://blog.csdn.net/qq_31261509/article/details/83829650

读取文件夹下的相应拓展名文件


  • 通过CMakeList链接boost库的文件操作目录
find_package(Boost REQUIRED COMPONENTS system filesystem)
include_directories(${Boost_INCLUDE_DIRS})

target_link_libraries(tmp ${Boost_LIBRARIES})

  • main.cpp文件中的recursion函数实现返回目录下的所有文件的绝对路径
#include <iostream>

#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem.hpp>

namespace fs = boost::filesystem;

void recursion(fs::path src_path, std::vector<std::string> &img_paths) {
    fs::directory_iterator end;
    for (fs::directory_iterator dir(src_path); dir != end; dir++)
    {
        std::string fn = dir->path().string();
        if(dir->path().extension() == ".jpg") {
            std::string path = dir->path().string();
            img_paths.push_back(path);
        }
    }
}

int main() {
    std::vector<std::string> img_path;
    int size;
    recursion("/home/rui/Pictures", img_path);
    for(int i = 0; i < img_path.size(); i++)
        std::cout<<img_path[i]<<std::endl;
}

相对C++还是喜欢用Python处理文件以及字符串操作,还有待更新C++其他文件系统操作

猜你喜欢

转载自blog.csdn.net/qq_31261509/article/details/83829650