【问题标题】:Get the list of files in a directory with in a directory [duplicate]获取目录中的文件列表[重复]
【发布时间】:2014-06-06 09:06:48
【问题描述】:

我在这个目录中有一个名为“BaseFile”的目录,我有几个名为“Dir1”、“Dir2”、“Dir3”等的目录,

在这些子目录中,我有需要通过代码列出的文件列表。有人可以给我一些关于如何做到这一点的提示吗?

我需要在 Windows 和 Linux 平台上都这样做..

【问题讨论】:

  • Boost 有一个很好的 API。说明书不错。
  • 您需要 C 还是只需要 C++ 答案?

标签: c++ c linux windows


【解决方案1】:

您可以使用 opendir() 和 readdir() 编写此类代码

#include <dirent.h> 
#include <stdio.h> 

int main(void)
{
    DIR           *dirp;
    struct dirent *directory;

    dirp = opendir("/home/user/");
    if (dirp)
    {
        while ((directory = readdir(dirp)) != NULL)
        {
          printf("%s\n", directory->d_name);
        }

        closedir(dirp);
    }

    return(0);
}

【讨论】:

  • 这适用于 Windows 吗?
  • 它适用于 linux,我不确定它是否在 windows 中工作
  • 我刚试过,它似乎也适用于 Windows。
  • Directory1 里面有另一个目录,我有文件列表。我需要那些文件。这段代码将给出一个目录中的目录列表,对吗?
  • 在 VS15 上不存在。
【解决方案2】:

Boost 提供了一个 basic_directory_iterator,它提供了一个符合 C++ 标准的输入迭代器,可以访问目录的内容

参考

http://www.boost.org/doc/libs/1_35_0/libs/filesystem/doc/reference.html

【讨论】:

    猜你喜欢
    • 2015-02-04
    • 2011-03-12
    • 2012-10-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 2010-12-26
    • 2012-04-22
    相关资源
    最近更新 更多