如何在用户提供的目录中查找具有特定扩展名的文件?

时间:2013-10-04 19:12:05

标签: c++

老实说,我几年没用c ++了,所以请耐心等待。

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

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

-PseudoCode

  1. START
  2. 提示用户访问目录
  3. 在目录中搜索扩展名为.txt的所有文件
  4. 如果没有文件则错误
  5. 如果是文件
  6. 获取文件并存储列表
  7. 输出文件列表
  8. 使用文件执行其他操作
  9. END
  10. 我知道如何接受用户的输入但我不知道如何应用该输入(包含目录路径的字符串)以便能够导航并检查文件。 < / p>

    这是一个工作项目,它突然被扔进我的膝盖。我很感激你的帮助。

1 个答案:

答案 0 :(得分:5)

以下是使用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);
}