【问题标题】:How do i find files with a specific extension in a directory that is provided by the user?如何在用户提供的目录中查找具有特定扩展名的文件?
【发布时间】:2013-10-04 19:12:05
【问题描述】:

老实说,我已经有几年没有使用 c++ 了,所以请多多包涵。

我不是在找你为我写这段代码,只是指出我可以找到解决方案的方向(或者至少可以使用类似的东西)

操作系统:Windows 使用:dirent.h 不使用:提升

-伪代码

  1. 开始
  2. 提示用户输入目录
  3. 在目录中搜索所有扩展名为 .txt 的文件
  4. 如果没有文件则错误
  5. 如果文件那么
  6. 获取文件并存储列表
  7. 输出文件列表
  8. 在这里对文件做其他事情
  9. 结束

我知道如何接受用户的输入,但我不知道如何应用该输入(包含目录路径的字符串)来导航和检查文件。

这是一个工作项目,突然间就被扔到了我的腿上。非常感谢您的帮助。

【问题讨论】:

    标签: c++


    【解决方案1】:

    下面是一些使用 dirent.h 遍历目录的示例代码:

    #include <iostream>
    #include <algorithm>
    #include <string>
    #include <dirent.h>
    
    using namespace std;
    
    bool has_suffix(const string& s, const string& suffix)
    {
        return (s.size() >= suffix.size()) && equal(suffix.rbegin(), suffix.rend(), s.rbegin());    
    }
    
    int main(int argc, char **argv)
    {
        cout << "Directory name: ";
        string path;
        getline(cin, path);
    
        DIR *dir = opendir(path.c_str());
        if(!dir)
        {
            return 1;
        }
    
        dirent *entry;
        while((entry = readdir(dir))!=null) 
        {
            if(has_suffix(entry->d_name, ".txt"))
            {
                cout << entry->d_name << endl;
            }
        }
    
        closedir(dir);
    }
    

    【讨论】:

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