![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#3
|
||||
|
||||
|
es posible que para buscar los archivos de una carpeta y los archivos de las subcarpetas, la siguiente función que te muestro te sea de gran utilidad, lo que la he desarrollado en Delphi, si tienes algún problema para traducirla a C te puedo ayudar...
procedure SearchFiles(Path: string; vList: TStringList; all: boolean); var p, fn: string; fs: TSearchRec; attr: Integer; begin if trim(ExtractFileName(path)) = '' then fn := '*.*' else fn := trim(ExtractFileName(path)); p := ExtractFilePath(path); {Buscamos los ficheros} attr := faArchive; if FindFirst(p + fn ,attr, fs) = 0 then vList.Add( p + fs.Name); while FindNext(fs) =0 do vList.Add( p + fs.Name); {Buscamos las carpetas} attr := faDirectory; if FindFirst(p + '\*..' ,attr, fs) = 0 then if (fs.Name <> '.') and (fs.Name <> '..') and (all) then SearchFiles(p + fs.Name + '\*.*', vlist, all); while FindNext(fs) =0 do if (fs.Name <> '.') and (fs.Name <> '..') and (all) then SearchFiles(p + fs.Name + '\*.*', vList, all); end; un ejemplo de llamada a la función ... var x: TStringList; begin x := TStringList.Create; SearchFiles('C:\*.*', x, CheckBox1.Checked); Memo1.Lines.Clear; Memo1.Lines.Add(x.Text); end; ... /////////////////////----- para obtener algunos datos de los ficheros, desarrollé la siguiente, digo, si te hace falta: type TFDEspec = record Fecha, Hora: string; end; type TFileDates = record dCreation: TFDEspec; dLastAccessTime: TFDEspec; dLastWrite: TFDEspec; end; function GetFileDates(pFN: TFileName): TFileDates; var vFoundData: _WIN32_FIND_DATA; c_SysTime, at_SysTime, lw_SysTime: TSystemTime; begin {Buscando el archivo y obteniendo sus datos} FindFirstFile(pChar(pFN), vFoundData); {Convirtiendo los datos a datos del sistem} FileTimeToSystemTime(vFoundData.ftCreationTime, c_SysTime); FileTimeToSystemTime(vFoundData.ftLastAccessTime, at_SysTime); FileTimeToSystemTime(vFoundData.ftLastWriteTime, lw_SysTime); {Elaborando los resultados} {Creación} Result.dCreation.Fecha := IntToStr(c_SysTime.wDay) + '/' + IntToStr(c_SysTime.wMonth) + '/' + IntToStr(c_SysTime.wYear); Result.dCreation.Hora := IntToStr(c_SysTime.wHour) + ':' + IntToStr(c_SysTime.wMinute) + ':' +IntToStr(c_SysTime.wSecond) + ':' +IntToStr(c_SysTime.wMilliseconds); {Último acceso} Result.dLastAccessTime.Fecha := IntToStr(at_SysTime.wDay) + '/' + IntToStr(at_SysTime.wMonth) + '/' + IntToStr(at_SysTime.wYear); Result.dLastAccessTime.Hora := IntToStr(at_SysTime.wHour) + ':' + IntToStr(at_SysTime.wMinute) + ':' +IntToStr(at_SysTime.wSecond) + ':' +IntToStr(at_SysTime.wMilliseconds); {Última escritura} Result.dLastWrite.Fecha := IntToStr(lw_SysTime.wDay) + '/' + IntToStr(lw_SysTime.wMonth) + '/' + IntToStr(lw_SysTime.wYear); Result.dLastWrite.Hora := IntToStr(lw_SysTime.wHour) + ':' + IntToStr(lw_SysTime.wMinute) + ':' +IntToStr(lw_SysTime.wSecond) + ':' +IntToStr(lw_SysTime.wMilliseconds); end; espero que de algo te sirva!!! salu2. |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Listar archivos de directorio a travez de FTP | ilichhernandez | Internet | 6 | 22-09-2006 01:03:14 |
| Listar una carpeta | [Gunman] | API de Windows | 4 | 03-01-2006 16:25:43 |
| adjuntar el archivo que esta dentro una carpeta | kinteam1 | Internet | 1 | 11-10-2005 22:32:01 |
| Listar archivos d 1a URL y descargarlos | Descendents | Internet | 0 | 06-11-2003 17:29:41 |
| Listar ficheros dentro de un arbol | olaya | API de Windows | 2 | 11-08-2003 19:44:15 |
|