Leer archivos directorio con combobox

Necesito leer y cargar en un combobox los nombres de los archivos de un directorio.

1 Respuesta

Respuesta
1
Lo mejor seria que crearas una función que devuelva la lista de archivos de una determinada carpeta (para poder utilizarla en otros sitios que sea necesario):
function ArchivosCarpeta(Carpeta, Mascara: String; IncluirPath, IncluirOcultos: Boolean): tStringList;
var DirInfo: TSearchRec;
    I, TiposDeArchivo: Integer;
begin
  Result := tStringList.Create;
  TiposDeArchivo := faAnyfile -faSysFile -faDirectory;
  if not IncluirOcultos then TiposDeArchivo := TiposDeArchivo -faHidden;
  I := FindFirst(IncludeTrailingPathDelimiter(Carpeta) + Mascara, TiposDeArchivo, DirInfo);
  while I = 0 do
  begin
    if (DirInfo.Name <> '.') and (DirInfo.Name <> '..') then
    begin
      if IncluirPath then Result.Add(IncludeTrailingPathDelimiter(Carpeta) + DirInfo.Name)
      else Result.Add(DirInfo.Name);
    end;
    I := FindNext(DirInfo);
  end;
  FindClose(DirInfo);
end;
Por ejemplo, para llenar el ComboBox con todos los archivos JPG de la carpeta "C:\MiCarpeta", sin incluir la ruta (tercer parámetro) y sin incluir los archivos ocultos (cuarto parámetro):
ComboBox1.Items := ArchivosCarpeta('C:\MiCarpeta', '*.jpg', False, False);
Para llenar el ComboBox con todos los archivos de la carpeta "C:\OtraCarpeta", incluyendo la ruta e incluyendo los archivos ocultos:
ComboBox1.Items := ArchivosCarpeta('C:\OtraCarpeta', '*.*', True, True);
Nota: La función no incluye subdirectorios ni archivos de sistema.
Otra cosa más... si la función la quieres utilizar para otra cosa que no sea un ComboBox, debes crear la variable que "recoja" la lista:
procedure TForm1.Button1Click(Sender: TObject);
var ListaDeArchivos: tStringList;
begin
ListaDeArchivos := ArchivosCarpeta('C:\MiCarpeta', '*.jpg', False, False);
// Aqui realizas las tareas que quieras con la lista...
//...y luego la eliminas de memoria:
FreeAndNil(ListaDeArchivos);
end;
Gracias por vuestras respuestas y perdonad la demora en la contestación.
Al final lo que hice fue crear un fichero en el que cargaba los nombres de las tablas.
Al arrancar el programa me leía el fichero y me lo carga en el combobox.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas