[C con Clase] Nombre de archivos

Salvador Pozo salvador en conclase.net
Lun Ago 30 13:49:50 CEST 2010


Hola:

JB> Estoy estudiando programación en c++, hace unos días nos dejaron una tarea 
JB> relativamente sencilla:
JB> ...
JB> Tengo el método para ordenarlos y otras cosas que debe hacer el programa, 
JB> pero no sé cómo obtener los nombres de los archivos.
JB> ¿Existe algún método o función que pueda usar para esto?

Tendrás que usar funciones no estándar, del sistema operativo. Por lo que veo, por tu otra duda, el programa se debe ejecutar en Windows, por lo tanto, puedes recurrir al API de Windows.

Para este tipo de tareas de buscar archivos y directorios, se usa un conjunto de funciones y estructuras.
FindFirstFile: http://winapi.conclase.net/curso/?winfun=FindFirstFile#inicio
o
FindFirstFileEx: http://winapi.conclase.net/curso/?winfun=FindFirstFileEx#inicio

y otras.

Como este tema ya se ha tratado anteriormente en la lista, te oriento a un mensaje almacenado:

http://listas.conclase.net/?gid=2&mnu=mensajes&ord=fecha&msg=25485

JB> Además, ¿cómo puedo utilizar la función QueryPerformanceCounter() para 
JB> conocer el tiempo que tarda el programa en realizar la búsqueda?

Según la documentación:

http://msdn.microsoft.com/en-us/library/ms644904%28VS.85%29.aspx

Esta función obtiene el valor actual del contador de comportamiento de alta resolución. Es decir, un contador que se incrementa cada muy poco tiempo.

La técnica general es obtener ese contador antes y después de realizar el proceso cuyo tiempo de ejecución quieres medir, y restar los valores obtenidos.

Aclarar que los tiempos (contadores) obtenidos por estas técnicas en sistemas operativos modernos, con multitarea real, son siempre orientativos, y dependerán en gran medida de la carga del sistema y del momento en que se ejecute el programa.

Por ejemplo, si entre la medida de un proceso y la de otro, un usuario o el propio sistema, arranca (por ejemplo) el desfragmentador del disco, los tiempos obtenidos para el segundo proceso serán mucho más largos de lo esperado.

Como esto, hay cientos de tareas que se ejecutan en un ordenador que influyen en la carga y que son difícilmente predecibles.

Por lo tanto, sería interesante medir los tiempos de las tareas a cronometrar varias veces y en momentos diferentes.

Hasta luego.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


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