resueltos - Delphi-cómo obtener una lista de todos los archivos del directorio
opinion ejecutiva (4)
Estoy trabajando con Delphi, quiero una lista de todos los archivos de un directorio cuando ejecuto openpicturedialog.
es decir, cuando se ejecuta el cuadro de diálogo abierto y selecciono un archivo de él, quiero la lista de todos los archivos del directorio del archivo seleccionado.
Incluso puede sugerirme que obtenga el nombre de directorio de la propiedad FileName
de TOpenDialog
Gracias.
@Himadri, el objetivo principal de OpenPictureDialog no es seleccionar un directorio. De todos modos, si está utilizando este cuadro de diálogo con otro propósito, puede probar este código.
Var
Path : String;
SR : TSearchRec;
DirList : TStrings;
begin
if OpenPictureDialog1.Execute then
begin
Path:=ExtractFileDir(OpenPictureDialog1.FileName); //Get the path of the selected file
DirList:=TStringList.Create;
try
if FindFirst(Path + ''*.*'', faArchive, SR) = 0 then
begin
repeat
DirList.Add(SR.Name); //Fill the list
until FindNext(SR) <> 0;
FindClose(SR);
end;
//do your stuff
finally
DirList.Free;
end;
end;
end;
Cambie la propiedad de filtro en su OpenPictureDialog para incluir todos los archivos:
All (*.*)
Edición : no creo que pueda seleccionar un directorio en un cuadro de diálogo Abrir (imagen), seguramente no es el propósito de un OpenPictureDialog de todos modos. Quizás this es lo que buscas.
Luego use FindFirst y FindNext para obtener los archivos en este directorio.
Puede usar la función extractFilePath para obtener el nombre del directorio:
myPath := extractFilePath(FileName);
donde NombreDeArchivo es el nombre del archivo que elige por OpenDialog.
Si usa Delphi 2010, entonces puede usar tdirectory.getfiles primero agregue ioutils.pas para usar la cláusula y luego escriba la siguiente línea de código en el controlador de eventos (además del código que ya tiene en ese controlador de eventos)
uses IOUtils;
var
path : string;
begin
for Path in TDirectory.GetFiles(OpenPictureDialog1.filename) do
Listbox1.Items.Add(Path);{assuming OpenPictureDialog1 is the name you gave to your OpenPictureDialog control}
end;