【发布时间】:2011-03-02 22:29:29
【问题描述】:
我正在使用 delphi,当我执行 openpicturedialog 时,我想要一个目录中所有文件的列表。
即,当打开对话框被执行并且 我从中选择一个文件,我想要 目录中所有文件的列表 所选文件。
您甚至可以建议我从FileName 的TOpenDialog 属性中获取目录名称
谢谢。
【问题讨论】:
标签: delphi opendialog
我正在使用 delphi,当我执行 openpicturedialog 时,我想要一个目录中所有文件的列表。
即,当打开对话框被执行并且 我从中选择一个文件,我想要 目录中所有文件的列表 所选文件。
您甚至可以建议我从FileName 的TOpenDialog 属性中获取目录名称
谢谢。
【问题讨论】:
标签: delphi opendialog
您可以使用 extractFilePath 函数获取目录名称:
myPath := extractFilePath(FileName);
其中 FileName 是您通过 OpenDialog 选择的文件的名称。
【讨论】:
@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 添加到 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;
【讨论】:
if OpenPictureDialog1.Execute then
FileListBox1.Directory := extractFilePath(OpenPictureDialog1.FileName);
您还可以使用链接到 FileListBox 的 FilterComboBox 来过滤文件类型。
TFileListBox 和 TFilterComboBox 位于“Win 3.1”下的工具面板中。 Delphi 4 中有这些对象。
【讨论】:
使用 System.IOUtils;
变量列表:TStringlist;
var 文件:字符串 := '';enter code here
var Path : string := IncludeTrailingPathDelimiter(Edit1.Text);
Lista := TStringList.Create; 尝试 对于 TDirectory.GetFiles(Path) 中的文件做 列表.添加(文件); // 将所有文件名添加到列表中 最后 FreeAndNil(列表); 结束;
【讨论】: