Delphi - как получить список всех файлов каталога
Я работаю с delphi, я хочу список всех файлов каталога при выполнении openpicturedialog.
i.e., Когда открыто диалоговое окно я выбираю один файл из него, я хочу, чтобы список всех файлов из каталога выбранного файла.
Вы даже можете предложить мне получить имя каталога из FileName
свойства TOpenDialog
Спасибо.
Ответы
Ответ 1
@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;
Ответ 2
если вы используете delphi 2010, тогда вы можете использовать tdirectory.getfiles
сначала добавьте предложение ioutils.pas to uses, затем напишите следующую строку кода в обработчике событий (в дополнение к коду, который у вас уже есть в этом обработчике событий)
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;
Ответ 3
Измените свойство фильтра в OpenPictureDialog, чтобы включить все файлы:
All (*.*)
Изменить. Я не думаю, что вы можете выбрать каталог в диалоговом окне Open (Picture), это, конечно же, не цель OpenPictureDialog. Возможно, этот - это то, что вы ищете.
Затем используйте FindFirst и FindNext, чтобы получить файлы в этом каталоге.
Ответ 4
Вы можете использовать функцию extractFilePath для получения имени каталога:
myPath := extractFilePath(FileName);
где FileName - это имя файла, который вы выбираете OpenDialog.