Advertisement
Guest User

Untitled

a guest
May 25th, 2015
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #include <windows.h>
  2. #include <vector>
  3. #include <sstream>
  4. #include <iostream>
  5. #include <fstream>
  6.  
  7. using namespace std;
  8.  
  9. string DiretorioDaAplicacao() {
  10.     char buffer[MAX_PATH];
  11.     GetModuleFileName(NULL, buffer, MAX_PATH);
  12.     int pos = string(buffer).find_last_of("\\/");
  13.     return string(buffer).substr(0, pos);
  14. }
  15.  
  16. string ExtrairNomeDoArquivo(string caminho){
  17.     int indice = caminho.rfind('/');
  18.     return caminho.substr(indice + 1);
  19. }
  20.  
  21. vector<string> ProcurarArquivos(string diretorio) {
  22.     vector<string> arquivos;
  23.     string busca = diretorio + "\\*.txt"; // Arquivos de texto somente!
  24.     HANDLE hFind;
  25.     WIN32_FIND_DATA data;
  26.     hFind = FindFirstFile(busca.c_str(), &data);
  27.     if (hFind != INVALID_HANDLE_VALUE) {
  28.         do {
  29.             arquivos.push_back(data.cFileName);
  30.         } while (FindNextFile(hFind, &data));
  31.     FindClose(hFind);
  32.     }
  33.     return arquivos;
  34. }
  35.  
  36. string LerAquivo(string arquivo) {
  37.     ifstream ifs;
  38.     ifs.exceptions (ifstream::failbit | ifstream::badbit);
  39.     try {
  40.         ifs.open(arquivo.c_str());
  41.         stringstream ss;
  42.         ss << ifs.rdbuf();
  43.         string str = ss.str();
  44.         return str;
  45.     }
  46.     catch (ifstream::failure e) {
  47.         /* Fazer alguma coisa aqui caso ocorram erros */
  48.         return "";
  49.     }
  50. }
  51.  
  52.  
  53.  
  54. int main()
  55. {
  56.     string Diretorio = DiretorioDaAplicacao();
  57.     vector<string> arquivos = ProcurarArquivos(Diretorio);
  58.     for (vector<string>::iterator i = arquivos.begin(); i != arquivos.end(); i++) {
  59.             string conteudo = LerAquivo(*i);
  60.             string arquivo  = ExtrairNomeDoArquivo(*i);
  61.  
  62.             cout << "Nome do arquivo: " << arquivo << endl;
  63.             cout << conteudo << endl;
  64.         /* Aqui você executa a função LerAquivo() passando como argumento "arquivo"*/
  65.     }
  66.     cin.get();
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement