Buscar archivos e cualquier ubicacion
Publicado por Antonio (1271 intervenciones) el 30/09/2011 04:48:17
Un saludos a todos:
Necesito ayuda de ustedes por favor...
Explicare mi caso:
Rsulta que tengo que implementar un proceso en el cual el usuario escriba el nombre de un archivo ó parte del archivo con comodines (*) y buscarlo en ciertas rutas de la PC.
Ahora bien, resuta que ciertos archivos se guardan automaticamente en carpetas que se generan en el momento; ejemplo:
carpeta princial
C:\INFORMES
sub carpeta
C:\INFORMES\NOMBRE CLIENTE
sub sub carpeta
C:\INFORMES\NOMBRE CLIENTE\2011
sub sub sub careta
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO
Y dentro de C:\INFORMES\NOMBRE CLIENTE\2011\ENERO se guardan todos los archivos (XLS, DOC, TXT, PDF, XML, etc)
Como en ese momento no se sabe la carpeta, se debe buscar los archivos (por ejemplo PDF) que existan a partir de la carpeta principal (C:\INFORMES) y mostrarlos ya sea en un ListTreeView, Datawindow, etc, con la ruta y nombre de archivo. ejemplo
C:\INFORMES\carta.pdf
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO\informe.pdf
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO\activos.pdf
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO\factura.pdf... etc
¿si alguien sabe como hacerlo ó que API usar ? se lo agaradecer infinitamente:
P..D.
Ya hice pruebas con la api FindFirstFile() pero cuando corro el ejemplo asi:
string ls_FilePath = 'C:\INFORMES\*.pdf'
ll_handle = guo_servicios.FindFirstFile (ls_filePath, lpFindFileData)
el ll_handle siempre me regres -1 lo cual quiere decir que no realiza la búsqueda.
Este es el código completo.
string ls_fileNames[]
String ls_filePath
long ll_handle
long li_count = 1
long ll_Error
win32_find_data lpFindFileData, lst_FindData
ls_filePath = "'C:\INFORMES\*.pdf'"
ll_handle = guo_servicios.FindFirstFile (ls_filePath, lpFindFileData)
if ll_handle <> -1 then
ls_fileNames[li_count] = lpFindFileData.filename
lpFindFileData = lst_FindData
ll_Error = FindNextFile( ll_handle, lpFindFileData)
do while ll_Error > 0
li_count = li_count + 1
ls_fileNames[li_count] = lpFindFileData.filename
lpFindFileData = lst_FindData //reset the structure
ll_Error = FindNextFile( ll_handle, lpFindFileData)
loop
end if
FindClose(ll_handle)
Necesito ayuda de ustedes por favor...
Explicare mi caso:
Rsulta que tengo que implementar un proceso en el cual el usuario escriba el nombre de un archivo ó parte del archivo con comodines (*) y buscarlo en ciertas rutas de la PC.
Ahora bien, resuta que ciertos archivos se guardan automaticamente en carpetas que se generan en el momento; ejemplo:
carpeta princial
C:\INFORMES
sub carpeta
C:\INFORMES\NOMBRE CLIENTE
sub sub carpeta
C:\INFORMES\NOMBRE CLIENTE\2011
sub sub sub careta
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO
Y dentro de C:\INFORMES\NOMBRE CLIENTE\2011\ENERO se guardan todos los archivos (XLS, DOC, TXT, PDF, XML, etc)
Como en ese momento no se sabe la carpeta, se debe buscar los archivos (por ejemplo PDF) que existan a partir de la carpeta principal (C:\INFORMES) y mostrarlos ya sea en un ListTreeView, Datawindow, etc, con la ruta y nombre de archivo. ejemplo
C:\INFORMES\carta.pdf
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO\informe.pdf
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO\activos.pdf
C:\INFORMES\NOMBRE CLIENTE\2011\ENERO\factura.pdf... etc
¿si alguien sabe como hacerlo ó que API usar ? se lo agaradecer infinitamente:
P..D.
Ya hice pruebas con la api FindFirstFile() pero cuando corro el ejemplo asi:
string ls_FilePath = 'C:\INFORMES\*.pdf'
ll_handle = guo_servicios.FindFirstFile (ls_filePath, lpFindFileData)
el ll_handle siempre me regres -1 lo cual quiere decir que no realiza la búsqueda.
Este es el código completo.
string ls_fileNames[]
String ls_filePath
long ll_handle
long li_count = 1
long ll_Error
win32_find_data lpFindFileData, lst_FindData
ls_filePath = "'C:\INFORMES\*.pdf'"
ll_handle = guo_servicios.FindFirstFile (ls_filePath, lpFindFileData)
if ll_handle <> -1 then
ls_fileNames[li_count] = lpFindFileData.filename
lpFindFileData = lst_FindData
ll_Error = FindNextFile( ll_handle, lpFindFileData)
do while ll_Error > 0
li_count = li_count + 1
ls_fileNames[li_count] = lpFindFileData.filename
lpFindFileData = lst_FindData //reset the structure
ll_Error = FindNextFile( ll_handle, lpFindFileData)
loop
end if
FindClose(ll_handle)
Valora esta pregunta
0