Ir al contenido


Foto

Conocer los archivos de una carpeta


  • Por favor identifícate para responder
2 respuestas en este tema

#1 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 18 junio 2010 - 09:00

Puede que en algún caso nos interese el conocer los archivos que hay en una determinada carpeta para un procesado posterior. Esta función nos devolverá en un TStringList la lista de archivos de una carpeta pasada por parámetro.

Parámetros:
- Dir: carpeta a revisar
- FileNames: TStringList donde se almacenarán los archivos
- Mask: máscara de búsqueda (ej: *.jpg, win*.*, ........)
- Recursive: si se desea mirar en las subcarpetas que pueda tener
- IncludeBaseDir: incluir toda la ruta del fichero en el nombre
- ClearList: borrar FileNames



delphi
  1.     procedure GetNameFilesFromFolder(Dir: string; FileNames: TStringList;
  2.         Mask: string = '*.*'; Recursive: Boolean = False;
  3.         IncludeBaseDir: Boolean = False; ClearList: Boolean = True);
  4.  
  5.  
  6. procedure GetNameFilesFromFolder(Dir: string;
  7.   FileNames: TStringList; Mask: string; Recursive, IncludeBaseDir,
  8.   ClearList: Boolean);
  9. var
  10.   Files: integer;
  11.   FOrigen: string;
  12.   FDestino: string;
  13.   ok: boolean;
  14.   Search: TSearchRec;
  15. begin
  16.   Dir := IncludeTrailingPathDelimiter(Dir);
  17.   if ClearList then FileNames.Clear;
  18.  
  19.   Files := FindFirst(Dir + Mask, faAnyFile, Search);
  20.   while Files = 0 do
  21.   begin
  22.     if Search.Attr <> faDirectory then
  23.     begin
  24.       if IncludeBaseDir then FileNames.Add(Dir + Search.Name)
  25.       else FileNames.Add(Search.Name);
  26.     end
  27.     else
  28.     begin
  29.       if (Search.Name <> '.') and (Search.Name <> '..') and Recursive then
  30.         GetNameFilesFromFolder(Dir + Search.Name, FileNames, Mask, Recursive, IncludeBaseDir, False);
  31.     end;
  32.     Files := FindNext(Search);
  33.   end;
  34.   FindClose(Search);
  35. end;



Nos leemos

  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 18 junio 2010 - 09:05


Ah vaya, este hilo me viene como anillo al dedo (y), tengo un programita que necesito depurar y parte de esa depuración era obtener archivos *.xxx de una carpeta. :) Gracias Xavier.

Salud OS
  • 0

#3 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 18 junio 2010 - 10:12

Una función similar aunque en C/C++: Mostrar ficheros de carpetas y subcarpetas.

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.