Problema listando archivos de un directorio C++

Iniciado por Kaxperday, 8 Diciembre 2015, 01:00 AM

0 Miembros y 1 Visitante están viendo este tema.

Kaxperday

Buenas os dejo el código:

Código (cpp) [Seleccionar]

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.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.