【问题标题】:c++, List all files, dirent.h on Windowsc++,列出所有文件,windows上的dirent.h
【发布时间】:2011-04-30 08:35:43
【问题描述】:

在 C++ 中,在 Windows 上列出目录中所有文件的最佳方式是什么?

在 Linux 或使用 gcc(例如 MingW)的 Windows 上,使用 dirent.h 很容易,但是当 dirent.h 不可用时(例如 Visual Studio)在 Windows 上执行此操作的最佳方法是什么?

我是否应该强制人们将免费提供的 dirent.h 实现添加到他们的 Visual Studio 中?或者我应该写一个替代代码来读取文件?如果是这样,最好的代码是什么?

谢谢。

【问题讨论】:

    标签: c++ windows list file dirent.h


    【解决方案1】:

    dirent.h 是一个 POSIX 标头。在 Windows 上,您使用 Win32 API 中的Find*File*() 函数。

    【讨论】:

    • +1 因为 FindFirstFile+FindNextFile 是在 Windows 上查找文件的最佳方式,无需额外的抽象层。
    • 我想知道,如果它是 POSIX (dirent.h),它不应该在 Windows 上也可以访问吗? (因为 windows 几乎是 posix 兼容的)
    • @gekannt:Windows 远不符合 POSIX 标准。
    【解决方案2】:

    Boost Filesystem 之类的东西适用于所有这些情况。

    【讨论】:

    • 要求他们将 Boost 添加到他们的 VS 环境中。
    • @unapersson 是的,他们会的。好像没什么问题。
    【解决方案3】:

    为了补充上面的答案,Windows API 是通过包含的 windows.h 头文件访问的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 2011-10-29
      • 1970-01-01
      • 2012-09-02
      • 2016-12-25
      • 2013-12-07
      • 2021-09-22
      相关资源
      最近更新 更多