当前位置 : 主页 > 编程语言 > delphi >

delphi – 根据预定义的文件名过滤打开的对话框

来源:互联网 收集:自由互联 发布时间:2021-06-23
问题1: 我想过滤只显示某个文件名的打开对话框.文件名在TEdit框中给出.这是我的代码,但它仍然显示目录中的整个文件. 程序TForm1.ButtonLoad(发件人:TObject); var openDialog: TOpenDialog; i: Int
>问题1:
我想过滤只显示某个文件名的打开对话框.文件名在TEdit框中给出.这是我的代码,但它仍然显示目录中的整个文件.

程序TForm1.ButtonLoad(发件人:TObject);

var
  openDialog: TOpenDialog; 
  i: Integer;
begin
 TFBusy(sender);
  openDialog := TOpenDialog.Create(self);
  openDialog.Title := 'Browsing desired file, Browse for '+ TEdit1.Text;
  openDialog.InitialDir := strMyDoc;
  openDialog.FileName := TEdit1.Text;
  openDialog.Filter := 'All file extension|*.*';
  try
    if not openDialog.Execute then
    begin
mem0.lines.add('Browse file to load was cancelled');
    end;
  finally

  for i := 0 to openDialog.Files.Count - 1 do
      //i do here with the file

  end;
  openDialog.Free;
  TFReady(sender);
end;

虽然打开对话框上的文件名显示正确,但它仍然显示目录中的整个文件.

问题2:

我可以使用特定前缀过滤文件吗?
例如;我的文件名是FLOWER-3320,FLOWER-2230,依此类推.所以我想过滤打开的对话框,只显示前缀名为FLOWER-的任何文件(忽略文件扩展名)

最好的祝愿,
蜜蜂.

它会显示所有文件,因为您明确告诉它:

openDialog.Filter := 'All file extension|*.*';

单独设置文件名不会过滤打开的对话框.

你可以使用这样的过滤器:

openDialog.Filter := 'Flower Files|FLOWER-*.*';

显示前缀为“FLOWER-”的所有文件.如果要过滤除一个特定文件名以外的所有文件名,只需在过滤器的第一部分中省略通配符:

openDialog.Filter := 'Flower-2230 File|FLOWER-2230.*';

但是(正如David在他的评论中指出的那样)为什么在将选择限制为单个文件时有一个打开的对话框?

网友评论