我正在使用delphi,当我执行openpicturedialog时,我想要一个目录中所有文件的列表。
即,当执行打开对话框时并且 我从中选择一个文件,我想要 目录中所有文件的列表 所选文件的名称。
您甚至可以建议我从
FileName
的
TOpenDialog
如果您使用的是 Delphi 2010,那么您可以使用 TDirectory.GetFiles。
首先将
UIUtils
添加到 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;
@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;
您可以使用extractFilePath函数获取目录名称:
myPath := extractFilePath(FileName);
其中 FileName 是您通过 OpenDialog 选择的文件名。
if OpenPictureDialog1.Execute then
FileListBox1.Directory := extractFilePath(OpenPictureDialog1.FileName);
您还可以使用链接到 FileListBox 的 FilterComboBox 来过滤文件类型。
TFileListBox 和 TFilterComboBox 位于“Win 3.1”下的工具选项板中。从 Delphi 4 开始就有这些对象。
通过这段代码,你可以获取你想要的文件夹中文件的“路径”信息。您可以使用 Delphi 的
System.IOUtils
库来实现此目的。
uses
...
System.IOUtils;
...
var List : TStringlist;
var File : String := '';
var Path : string := IncludeTrailingPathDelimiter(Edit1.Text);
Lista := TStringList.Create;
try
for File in TDirectory.GetFiles(Path) do
List.Add(File); // Add all file names to list
finally
FreeAndNil(Lista);
end;