Código
vector<string> listar_archivos(string _directorio) { WIN32_FIND_DATAA ffd; HANDLE hFind; vector<string> retorno; hFind = FindFirstFileA(_directorio.c_str(), &ffd); if (hFind == INVALID_HANDLE_VALUE) return retorno; do{ printf("%x\n", ffd.dwFileAttributes); if (ffd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE | FILE_ATTRIBUTE_HIDDEN)) retorno.push_back(ffd.cFileName); } while (FindNextFileA(hFind, &ffd) != 0); for each(string s in retorno)cout << s; return retorno; }
El problema está en que en ese directorio tengo 6 archivos con los atributos FILE_ATTRIBUTE_ARCHIVE y FILE_ATTRIBUTE_HIDDEN que puse con SetAtributtes pero sin embargo no aparecen al listarlos al final, también elimine la condición del if en el bucle y la salida era la misma no aparecen, también probé a listar archivos del desktop por ejemplo y no salía nada.
Lo que obtengo al mostrar la variable "retorno" elemento a elemento es un solo elemento que es el nombre del directorio del que quiero ver sus archivos, no sus archivos.
¿que falla?, saludos y gracias.
Vuelve edicion delicatesse:[/glow][/shadow] Acabo de solucionarlo había que añadir a el directorio "\\*" como pone aqui:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365200(v=vs.85).aspx
Un saludo.