recorrer el contenido de una carpeta

15/03/2005 - 19:46 por Miguel | Informe spam
Con que funcion me puedo recorrer el contenido de una carpeta, para saber el
nombre de los ficheros que hay dentro de ella

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
15/03/2005 - 22:26 | Informe spam
FindFirstFile, FindNextFile

#define _WIN32_WINNT 0x0501

#include <windows.h>
#include <string.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
char DirSpec[MAX_PATH]; // directory specification
DWORD dwError;

printf ("Target directory is %s.", argv[1]);
strncpy (DirSpec, argv[1], strlen(argv[1])+1);
strncat (DirSpec, "\\*", 3);

hFind = FindFirstFile(DirSpec, &FindFileData);

if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid file handle. Error is %u", GetLastError());
return (-1);
}
else
{
printf ("First file name is %s", FindFileData.cFileName);
while (FindNextFile(hFind, &FindFileData) != 0)
{
printf ("Next file name is %s", FindFileData.cFileName);
}

dwError = GetLastError();
if (dwError == ERROR_NO_MORE_FILES)
{
FindClose(hFind);
}
else
{
printf ("FindNextFile error. Error is %u", dwError);
return (-1);
}
}
return (0);
}
Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Isidro Muñoz
16/03/2005 - 12:41 | Informe spam
Buenas,

FindFirstFile, FindNextFile, FindClose

Saludos.
Isidro.


"Miguel" escribió en el mensaje
news:
Con que funcion me puedo recorrer el contenido de una carpeta, para saber


el
nombre de los ficheros que hay dentro de ella



Respuesta Responder a este mensaje
#3 Eugenio Miró
19/03/2005 - 00:49 | Informe spam
si estás programando con MFC puedes usar una clase que te simplifica bastante
este trabajito: CFindFile
http://msdn.microsoft.com/library/d...lefind.asp

Sino el código de rodrigo es lo que hay que hacer con Win32 puro...

"Rodrigo Corral [MVP]" wrote:

FindFirstFile, FindNextFile

#define _WIN32_WINNT 0x0501

#include <windows.h>
#include <string.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
char DirSpec[MAX_PATH]; // directory specification
DWORD dwError;

printf ("Target directory is %s.", argv[1]);
strncpy (DirSpec, argv[1], strlen(argv[1])+1);
strncat (DirSpec, "\\*", 3);

hFind = FindFirstFile(DirSpec, &FindFileData);

if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid file handle. Error is %u", GetLastError());
return (-1);
}
else
{
printf ("First file name is %s", FindFileData.cFileName);
while (FindNextFile(hFind, &FindFileData) != 0)
{
printf ("Next file name is %s", FindFileData.cFileName);
}

dwError = GetLastError();
if (dwError == ERROR_NO_MORE_FILES)
{
FindClose(hFind);
}
else
{
printf ("FindNextFile error. Error is %u", dwError);
return (-1);
}
}
return (0);
}
Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida