2013-10-04 4 views
0

Честно говоря, я не работал с C++ уже пару лет, поэтому, пожалуйста, несите меня.Как найти файлы с определенным расширением в каталоге, предоставленном пользователем?

Я не ищу для вас, чтобы написать этот код для меня, просто мне точку в направлении, где я могу найти решение (или по крайней мере что-то подобное тха ти может работать с)

ОС: Windows Использование: dirent.h НЕ Использование: повышение

-PseudoCode

  1. START
  2. Запрашивать каталог
  3. Поиск каталог для всех файлов с расширением .txt
  4. Если файлы затем ошибка
  5. Если файлы затем
  6. получить файлы и хранить список
  7. вывода списка файлов
  8. делать другие вещи с файлами здесь
  9. END

Я знаю, как ускори pt от пользователя, но я не знаю, как применить этот вход (строку, содержащую путь к каталогу), чтобы иметь возможность перемещаться и проверять его на наличие файлов.

Это проект для работы, и он внезапно превратился в меня на колени. Я был бы признателен за помощь.

ответ

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); 
} 
+0

Он работал с несколькими ухищрениями. Благодаря! – tc90

Смежные вопросы