如何获取给定目录中的所有文件名

Posted

技术标签:

【中文标题】如何获取给定目录中的所有文件名【英文标题】:How to get all filename in a given directory 【发布时间】:2009-11-12 13:25:39 【问题描述】:

我想获取给定路径中的文件名,是否有可用的 api。我的编程环境是vc++ mfc

【问题讨论】:

【参考方案1】:

您应该查看FindFirstFile 和FindNextFile,或MFC 的包装器CFileFind。

【讨论】:

【参考方案2】:

Boost 有一个很好的独立于平台的filesystem library。它将与 MFC 一起使用。

这是来自their reference 的示例:

#include <iostream>
#include <filesystem>

using std::tr2::sys;
using std::cout;

int main(int argc, char* argv[])

  std::string p(argc <= 1 ? "." : argv[1]);

  if (is_directory(p))
  
    for (directory_iterator itr(p); itr!=directory_iterator(); ++itr)
    
      cout << itr->path().filename() << ' '; // display filename only
      if (is_regular_file(itr->status())) cout << " [" << file_size(itr->path()) << ']';
      cout << '\n';
    
  
  else cout << (exists(p) ? "Found: " : "Not found: ") << p << '\n';

  return 0;

【讨论】:

【参考方案3】:

您也可以使用 MFC:CFileFind

【讨论】:

【参考方案4】:

还有CListBox::Dir。如果您想用文件名填充列表框,这非常方便。

【讨论】:

以上是关于如何获取给定目录中的所有文件名的主要内容,如果未能解决你的问题,请参考以下文章

PHP 获取给定目录的所有子目录

Linux 上如何仅获取一级子目录的大小?

如何获取所有文件中出现的单词?但是每个目录的单词计数而不是单个数字

如何从我的 Android 应用程序中的所有目录中获取所有 pdf 文件

如何获取目录下的文件数(一行Python)

使用java API如何获取给定路径的HDF文件结构