我正在使用delphi,当我执行openpicturedialog时,我想要一个目录的所有文件的列表。
即,执行打开对话框时 我从中选择一个文件,我想要 目录中所有文件的列表 所选文件。
您甚至可以建议我从FileName
的{{1}}属性获取目录名称
谢谢。
答案 0 :(得分:41)
如果你使用delphi 2010,那么你可以使用tdirectory.getfiles 首先将ioutils.pas添加到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;
答案 1 :(得分:23)
@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 :(得分:2)
更改OpenPictureDialog中的过滤器属性以包含所有文件:
All (*.*)
编辑:我认为你不能在Open(图片)对话框中选择一个目录,无论如何它肯定不是OpenPictureDialog的目的。也许this就是你所寻求的。
答案 3 :(得分:1)
您可以使用extractFilePath函数获取目录名称:
myPath := extractFilePath(FileName);
其中FileName是您通过OpenDialog选择的文件的名称。
答案 4 :(得分:1)
if OpenPictureDialog1.Execute then
FileListBox1.Directory := extractFilePath(OpenPictureDialog1.FileName);
您还可以使用链接到FileListBox的FilterComboBox来过滤文件类型。
TFileListBox和TFilterComboBox在“ Win 3.1”下的工具面板中。在Delphi 4中有这些对象。