【问题标题】:C++ search directories and filesC++ 搜索目录和文件
【发布时间】:2011-11-02 12:45:39
【问题描述】:

谁能告诉我是否有一个用 C++ 构建的库,我可以使用它来获取文件和目录的列表?我环顾四周,发现有人在使用 dirent.h,但我需要下载它(我认为)。

谢谢

附:我查看了 fstream,但据我所知,这仅用于读取和输出文件。

忘记提了。我不想下载任何东西,我只想看看是否有一个内置在 C++ 中的库,我可以直接使用。这是为 WINDOWS ASWELL 准备的

【问题讨论】:

  • 您使用的是哪个平台? C++ 本身与平台无关,因此您应该提供此信息。

标签: c++ file directory


【解决方案1】:

Boost::Filesystem 怎么样?支持directory iteration,可移植。

【讨论】:

    【解决方案2】:

    您可以使用Boost Filesystem 库。

    http://www.boost.org/doc/libs/1_31_0/libs/filesystem/doc/index.htm

    链接中还提供了一些不错的示例。

    编辑:

    如果不下载第 3 方库,就没有可移植的方法。对于 Windows,您可以使用 MFC 中的 CFileFind 类。

    【讨论】:

    • 我必须下载这个库吗?使用它?说找不到文件...使用VS2008
    • 是的,您确实需要下载 boost。
    • @Danny 我更新了我的答案,这应该可以在没有任何额外下载的情况下工作。
    【解决方案3】:

    由于其他人已经提到boost::filesystem,因此还有其他选择。几乎每个 C++ 框架都有一些列出目录和文件的方法。比如wxWidgetspoco 等等。

    关于dirent.h。它是一个standard C Posix library,所以它应该在 Posix 兼容系统上可用。对于 Windows,您也可以通过 here 获取它,其中包含有关如何使用它的说明。

    修改后:

    在 Windows 上,您可以使用 FindFirstFile (example here) 之类的内容,然后您无需下载任何内容。但它只适用于 Windows。它不是用 C++ 构建的。

    【讨论】:

      【解决方案4】:

      Using namespace std::filesystemvisual studio 2017 中可用,您在 #include

      中拥有

      #include <iostream>
      #include <iostream>
      #include <fstream>
      #include <filesystem>
      #include <chrono>
      #include <thread>
      #include <functional>
      namespace fs = std::filesystem;
      void Files_in_Directory();
      
      fs::path path_Copy_Directory = "E:\Folder";
      fs::path path_Paste_Directory = "E:\Folder1";
      int main()
      {
      Files_in_Directory()
      return 0;
      }
      void Files_in_Directory()
      {
      	for (const auto & entry : fs::directory_iterator(path_Copy_Directory))
      	{
      		std::cout << entry.path() << std::endl;
      			
      	}
      	
      }

      【讨论】:

        猜你喜欢
        • 2014-06-13
        • 2011-02-03
        • 2012-03-11
        • 1970-01-01
        • 1970-01-01
        • 2014-10-07
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        相关资源
        最近更新 更多