Я работаю с Дельфи, я хочу список всех файлов каталога, когда я выполняю openpicturedialog.
т.е. Когда открытое диалоговое окно выполняется, и я выбираю один файл из него, я хочу список всех файлов из каталога выбранного файла.
Можно даже предложить меня для получения имени каталога от FileName
свойство TOpenDialog
Спасибо.
@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;
, если вы используете 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;
Измените свойство filter в вашем OpenPictureDialog, чтобы включить все файлы:
All (*.*)
Изменить : Я не думаю, что вы можете выбрать каталог в диалоговое окно Open (Picture), в любом случае это не является целью OpenPictureDialog. Возможно это то, что вы ищете.
Затем используйте FindFirst и FindNext , чтобы получить файлы в этом каталоге.
Вы можете использовать функцию extractFilePath, чтобы получить имя каталога:
myPath := extractFilePath(FileName);
, где FileName - это имя файла, который вы выбираете с помощью OpenDialog.