Delphi如何实现根据特定文件名过滤打开文件对话框的长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计523个文字,预计阅读时间需要3分钟。
问题1:我想过滤只显示某个文件名的打开对话框。文件名在TEdit框中给出。这是我的代码,但仍然显示目录中的所有文件。请帮忙修改。
代码片段:pascalprocedure TForm1.ButtonLoad(Sender: TObject);var openDialog: TOpenDialog; i: Int;begin openDialog :=TOpenDialog.Create(self); try openDialog.InitialDir :='C:\'; openDialog.Execute; for i :=0 to openDialog.Files.Count - 1 do Memo1.Lines.Add(openDialog.Files[i]); finally openDialog.Free; end;end;
>问题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在他的评论中指出的那样)为什么在将选择限制为单个文件时有一个打开的对话框?
本文共计523个文字,预计阅读时间需要3分钟。
问题1:我想过滤只显示某个文件名的打开对话框。文件名在TEdit框中给出。这是我的代码,但仍然显示目录中的所有文件。请帮忙修改。
代码片段:pascalprocedure TForm1.ButtonLoad(Sender: TObject);var openDialog: TOpenDialog; i: Int;begin openDialog :=TOpenDialog.Create(self); try openDialog.InitialDir :='C:\'; openDialog.Execute; for i :=0 to openDialog.Files.Count - 1 do Memo1.Lines.Add(openDialog.Files[i]); finally openDialog.Free; end;end;
>问题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在他的评论中指出的那样)为什么在将选择限制为单个文件时有一个打开的对话框?

