【问题标题】:Searching for folders in C++在 C++ 中搜索文件夹
【发布时间】:2012-07-10 13:43:38
【问题描述】:

我有点编程的初学者,我需要帮助编写一个脚本,该脚本接受多个作为文件夹的字符串的输入,在 cmd 中针对当前位置的现有文件夹搜索文件夹列表,它显示哪个存在,哪个不存在。在现有的文件中,它显示了里面有多少文件。

例如,我在桌面目录中(假设它包含a,bb,c),我输入a,b,aa,bb,它将根据当前文件夹名称搜索a,b,aa,bb目录,然后它输出a,bb,c存在,aa,b不存在。然后显示a、bb、c里面有多少个文件。

我的时间不多,非常感谢任何即时帮助。

【问题讨论】:

  • 提示:您没有指定操作系统。
  • boost::filesystem 可能对此有好处。我对 boost 的了解还不够,无法将你带入我的脑海中。
  • 对不起,它适用于 Windows 7 64 位和 Visual Studio 2005 环境变量

标签: c++ file search directory


【解决方案1】:

我建议Boost.Filesystem,这是一个跨平台库,抽象文件系统操作,例如查询文件属性、创建、复制和移动文件。作为奖励,它被提议在 C++ ISO 标准的未来版本中进行标准化。

作为起点,这里有一个处理给定目录中每个文件的示例。

#include <boost/filesystem.hpp>
#include <iostream>

int main(int argc, char* argv[])
{
    if(argc == 2)
    {
        boost::filesystem::path directory(argv[1]);

        if (boost::filesystem::exists(directory) && boost::filesystem::is_directory(directory))
        {
            boost::filesystem::directory_iterator begin(directory);
            boost::filesystem::directory_iterator end;

            while(begin != end)
            {
                std::cout << *begin << " ";
                ++begin;
            }   
            std::cout << "\n";
        }   
    }
}

它表明你可以:

  • 遍历目录中的每个文件
  • 查询给定路径是否存在
  • 查询给定路径是否指向目录

您可能感兴趣的其他功能:

【讨论】:

    【解决方案2】:

    有一些很棒的库可以让这个过程非常轻松且跨平台。

    Qt 和 Boost 是最著名的。

    以下是相关类的文档链接,可以为您执行此操作:

    Boost FilesystemQt QDir

    我更喜欢Qt,因为长期以来文档已经很统一了,我也很喜欢IDE。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多