¿Cómo listar archivos en un directorio usando lenguaje C?
Abra el directorio
Recorra el directorio y genere los archivos en el directorio.
Puntero de cierre de directorio
Código de referencia:
#Contiene? ltdirent.h gt
#¿Contiene? ltstdio.h gt
int? principal()
{
DIR? * suciedad?
estructura? ¿director? * dp
¿Inmersión? =?opendir(" . ");? //Abrir puntero de directorio
¿Cuándo? ((dp?=?readdir(dirp))?!=?NULL)? {?//Leer el directorio a través del puntero del directorio
printf("s\n ", DP- gt; d_name?
}
( Obsoleto )? cerradodir(dirp);? //Cerrar directorio
¿Volver? 0;
}En Windows, el código es el siguiente:
#Include? ltio.h gt
#¿Contiene? ltstdio.h gt
¿No es válido? printDir(? const? char*? ruta?)
{
estructura? _buscar datos_t? Datos;
¿Dragón? ¿hnd? =?_findfirst(?path,?ampdata? //Busca el primer archivo cuyo nombre coincida con la expresión regular chRE.
¿Y si? (?hnd?lt?0?)
{
error(?ruta?);
}
intnRet? =?(hnd? lt0?)?-1?:?1;
¿Cuándo? (?nRet? gt=?0?)
{
¿Si? (?atributo de datos?==?_A_SUBDIR?)//?Si es un directorio
printf("?[s]*\n ",?data.name?);
Otro
printf("?[s]\n ", data.name?);
n¿Retirado? =?_findnext(?hnd,?amp datos?);
}
_findclose(?hnd?);? //Cerrar el identificador actual
}
¿No es válido? main()
{
printDir("d:/*.*");
}Descripción de la función relacionada:
龙? _findfirst(?char?*filespec,?struct?_finddata_t?*¿información del archivo?);
//?Función? :? Proporciona el primer archivo que coincide con el tipo de entrada especificado por filespec. La función _findnext() se usa generalmente para completar el recorrido de archivos de un determinado tipo.
//?¿Archivo de encabezado? :?#¿Incluir? ltio.h gt
//?Parámetros? :?especificación de archivo? -? Especificación del archivo de destino, puede contener caracteres comodín.
//información del archivo? -?Búfer de información del archivo
//?¿Valor de retorno? :?El identificador de búsqueda único se devolvió exitosamente.
//El error devuelve -1 y establece errno en el siguiente valor:
//ENOENT? No se puede igualar la expresión universal.
//EINVAL? Nombre de archivo no válido
int? _findnext(?Dragon?Handle,?struct?_finddata_t?*¿Información del archivo?);
//?Función? :? Según las reglas de generalización del _findfirst anterior, busque el siguiente archivo que cumpla con la generalización y modifique el valor en fileinfo en función de él.
//?¿Archivo de encabezado? :?#¿Incluir? ltio.h gt
//?Parámetros? :?¿dragón? ¿manejar? -? Identificador de búsqueda (generalmente devuelto por su _findfirst()) anterior
//fileinfo-? Búfer de información del archivo
//?¿Valor de retorno? :?Devuelve 0 con éxito.
//Error devuelto -1
int? _findclose(?Dragon?Handle?);
//?Función? :? Cierre el controlador de búsqueda y libere los recursos correspondientes.
//?¿Archivo de encabezado? :?#¿Incluir? ltio.h gt
//?Parámetros? :?¿dragón? ¿manejar? -? Identificador de búsqueda (normalmente devuelto por _findfirst() antes)
//?¿Valor de retorno? :?Devuelve 0 con éxito.
//Error devuelto -1