Delphi - как получить список всех файлов каталога

Я работаю с Дельфи, я хочу список всех файлов каталога, когда я выполняю openpicturedialog.

т.е. Когда открытое диалоговое окно выполняется, и я выбираю один файл из него, я хочу список всех файлов из каталога выбранного файла.

Можно даже предложить меня для получения имени каталога от FileName свойство TOpenDialog
Спасибо.

19
задан RBA 21 June 2013 в 11:33
поделиться

4 ответа

@Himadri, основная цель OpenPictureDialog не состоит в выборе каталога, в любом случае, если вы используете этот диалог с другой целью, вы можете попробовать этот код.

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;
26
ответ дан 30 November 2019 в 01:59
поделиться

, если вы используете delphi 2010, вы можете использовать tdirectory.getfiles сначала добавьте ioutils.pas в раздел using, затем напишите следующую строку кода в обработчике событий (в дополнение к коду, который у вас уже есть в этом обработчике событий)

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;
43
ответ дан 30 November 2019 в 01:59
поделиться

Измените свойство filter в вашем OpenPictureDialog, чтобы включить все файлы:

All (*.*)

Изменить : Я не думаю, что вы можете выбрать каталог в диалоговое окно Open (Picture), в любом случае это не является целью OpenPictureDialog. Возможно это то, что вы ищете.

Затем используйте FindFirst и FindNext , чтобы получить файлы в этом каталоге.

2
ответ дан 30 November 2019 в 01:59
поделиться

Вы можете использовать функцию extractFilePath, чтобы получить имя каталога:

myPath := extractFilePath(FileName);

, где FileName - это имя файла, который вы выбираете с помощью OpenDialog.

1
ответ дан 30 November 2019 в 01:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: