[C con Clase] obtener archivo

Camilo José cjdelreal2009 en gmail.com
Mie Ene 13 23:44:48 CET 2010


Hola Lester 
------------------------
LOM> hola alguien me puede informar como obtengo una lista de los archivos que estan en
LOM> un directorio especificado desde el directorio de mi programa ejecutable (C++) saludos y
LOM> gracias de antemano
------------------------

     ante lo que planteas no expones ciertas cosas que ya alguien te mencionó pues tienes que ser un poco informativo en ello, 
no obstante te puedo recomendar una funcion del API de Window (el curso lo puedes encontrar en el sitio www.conclase.net en la seccion de WINAPI) la cual es:
DlgDirList(HWND hDlg, LPTSTR direccion, int idLista, int idStaticDir, UINT tipo)
esta sirve para mostrar en un ListBox o Lista que puede tener scroll los ficheros de un directorio, los discos de almacenamiento y con varias opciones
la otra es:
DlgDirListComboBox(<los mismos parametros que la anterior>)
en este caso para lo mismo pero los muestra en un ComboBox o Lista desplegable.

Parametros:
1. HWND hDlg: Manipulador del control(Listbox o Combobox)
2. LPTSTR direccion: Puntero a la direccion que deseas a partir de la cual
   comenzar
3. int idLista: Identificador del control
4. int idStaticDir: Identificador de un control estatico (static) en el cual 
   aparecera la direccion en la que te encuentrar
5. UINT tipo: seran los atributos de los ficheros que quieres mostrar
   algunos de ellos son DDL_ARCHIVE, DDL_DRIVES, DDL_HIDDEN.

El resultado será un listbox o combobox que te puede mostrar los discos duros y otros medios de almacenamiento, los archivos con los atributos especificados, las carpetas del directorio, y lo mas importante es que puedes ver la direccion del directorio en que estas; puedes navegar por el sistema de archivos dando doble click en discos y carpetas(si los incluyes).

Si lo que deseas es mostrarlos de otra manera o en otro componente puedes seguir buscando, sin embargo puedes crear un componente que no sea visible(no agregarle WS_VISIBLE en el estilos del control) y luego obtener sus datos mediante sus funcines correspondientes y asi mostrarlo como deseeis.

Aquí te dejo el vínculo para que por si deseas investigar más:
1. Acceder al curso de WINAPI
   http://winapi.conclase.net/
2. Funciones para fichero en un listbox
   http://winapi.conclase.net/curso/index.php?cap=040c#CLBA_FICHEROS
3. Funciones para ficheros en un combobox
   http://winapi.conclase.net/curso/index.php?cap=043c#CB2_FICHEROS

Todo viene con un ejemplo que podrás descargar o ver(como gustes).
En mi opinión es mejor ver el código, sacar nuestras propias conclusiones y trabajar en base a ello, y luego comparo por supuesto.

Si lo deseabas hacerlo en consola puedes recurrir a la función "system" en la que puedes introducir como parámetro lines de comando de MS-DOS.
Ejemplo:
1. (...)
   system("pause");// muy conocida
   (...)
2. (...)
   system("dir");/* te mostrará todos los archivos y carpetas del directorio 
                    actual, pero no será muy agradable ver como muestra sus
                    resultados */
   (...)
 
Espero que mi ayuda te sirva,
   Camilo


Más información sobre la lista de distribución Cconclase