首页 > 解决方案 > 如何显示目录中的文件列表

问题描述

我的任务是显示给定目录中的文件列表。以下是我现有的代码:

FileListBox1->FileEdit = Edit1;
FilterComboBox1->FileList = FileListBox1;
DirectoryListBox1->FileList = FileListBox1;
DirectoryListBox1->DirLabel = Label1;
DriveComboBox1->DirList = DirectoryListBox1;
Button1->Default = true;

到目前为止,一切正常,但我*.txt的目录中只有文件,我想跳过这种类型的提要并立即将文件扩展名缩小为*.txt.

我已经尝试过这样的事情:

String fileType = L"*.txt";
FileListBox1->FileEdit = fileType;

还有其他一些解决方案,但每次我都会出错。

有任何想法吗?

标签: c++c++buildervclfilelist

解决方案


您收到错误是因为您试图分配 aString预期的位置TEdit*

如果您希望TFileListBox以编程方式显示特定类型的文件,请去掉TFilterComboBox并改用该TFileListBox::Mask属性:

限制在文件列表框中显示哪些文件。

将 Mask 设置为正则表达式以将列表框限制为与掩码匹配的文件。掩码的值是一个可能包含通配符的文件名。

String fileType = _D("*.txt");
FileListBox1->Mask = fileType;

也就是说,您使用的文件 UI 组件是古老的,它们是在 Windows 3.1 时代设计的,不应该在现代软件中使用。

查看 RTLFindFirst()FindNext()函数以通过掩码过滤以可编程方式枚举文件。有关更多详细信息,请参阅Embarcadero 文档中的查找文件


推荐阅读