Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <vector>
- #include <sstream>
- #include <iostream>
- #include <fstream>
- using namespace std;
- string DiretorioDaAplicacao() {
- char buffer[MAX_PATH];
- GetModuleFileName(NULL, buffer, MAX_PATH);
- int pos = string(buffer).find_last_of("\\/");
- return string(buffer).substr(0, pos);
- }
- string ExtrairNomeDoArquivo(string caminho){
- int indice = caminho.rfind('/');
- return caminho.substr(indice + 1);
- }
- vector<string> ProcurarArquivos(string diretorio) {
- vector<string> arquivos;
- string busca = diretorio + "\\*.txt"; // Arquivos de texto somente!
- HANDLE hFind;
- WIN32_FIND_DATA data;
- hFind = FindFirstFile(busca.c_str(), &data);
- if (hFind != INVALID_HANDLE_VALUE) {
- do {
- arquivos.push_back(data.cFileName);
- } while (FindNextFile(hFind, &data));
- FindClose(hFind);
- }
- return arquivos;
- }
- string LerAquivo(string arquivo) {
- ifstream ifs;
- ifs.exceptions (ifstream::failbit | ifstream::badbit);
- try {
- ifs.open(arquivo.c_str());
- stringstream ss;
- ss << ifs.rdbuf();
- string str = ss.str();
- return str;
- }
- catch (ifstream::failure e) {
- /* Fazer alguma coisa aqui caso ocorram erros */
- return "";
- }
- }
- int main()
- {
- string Diretorio = DiretorioDaAplicacao();
- vector<string> arquivos = ProcurarArquivos(Diretorio);
- for (vector<string>::iterator i = arquivos.begin(); i != arquivos.end(); i++) {
- string conteudo = LerAquivo(*i);
- string arquivo = ExtrairNomeDoArquivo(*i);
- cout << "Nome do arquivo: " << arquivo << endl;
- cout << conteudo << endl;
- /* Aqui você executa a função LerAquivo() passando como argumento "arquivo"*/
- }
- cin.get();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement