【问题标题】:how to get file names vs directory names in c++ (using boost filesystem library)如何在 C++ 中获取文件名与目录名(使用 boost 文件系统库)
【发布时间】:2015-09-12 02:48:45
【问题描述】:

当我使用boost::filesystem 获取目录中的文件名列表时,我会收到文件名和目录名:

#include <string>
#include <iostream>
#include <boost/filesystem.hpp>
using namespace std;
using namespace boost::filesystem;

int main()
{
    path p("D:/AnyFolder");
    for (auto i = directory_iterator(p); i != directory_iterator(); i++)
    {
        cout << i->path().filename().string() << endl;
    }
}

输出如下:

file1.txt
file2.dat
Folder1 //which is a folder

有没有快速区分文件和文件夹的方法? 如果重要的话,我的操作系统是 Windows 8.1。

【问题讨论】:

标签: c++ c++11 boost boost-filesystem


【解决方案1】:

is_directory()

boost::filesystem::is_directory(i->path());

【讨论】:

    【解决方案2】:

    最终代码:

    #include <string>
    #include <iostream>
    #include <boost/filesystem.hpp>
    using namespace std;
    using namespace boost::filesystem;
    
    int main()
    {
        path p("D:/AnyFolder");
        for (auto i = directory_iterator(p); i != directory_iterator(); i++)
        {
            if (!is_directory(i->path())) //we eliminate directories in a list
            {
                cout << i->path().filename().string() << endl;
            }
            else
                continue;
        }
    }
    

    输出如下:

    file1.txt
    file2.dat
    

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 1970-01-01
      • 2011-10-31
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多