c++ - 如何显示目录中的文件列表
问题描述
我的任务是显示给定目录中的文件列表。以下是我现有的代码:
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;
还有其他一些解决方案,但每次我都会出错。
有任何想法吗?
解决方案
您收到错误是因为您试图分配 aString
预期的位置TEdit*
。
如果您希望TFileListBox
以编程方式显示特定类型的文件,请去掉TFilterComboBox
并改用该TFileListBox::Mask
属性:
限制在文件列表框中显示哪些文件。
将 Mask 设置为正则表达式以将列表框限制为与掩码匹配的文件。掩码的值是一个可能包含通配符的文件名。
String fileType = _D("*.txt");
FileListBox1->Mask = fileType;
也就是说,您使用的文件 UI 组件是古老的,它们是在 Windows 3.1 时代设计的,不应该在现代软件中使用。
查看 RTLFindFirst()
和FindNext()
函数以通过掩码过滤以可编程方式枚举文件。有关更多详细信息,请参阅Embarcadero 文档中的查找文件。
推荐阅读
- python - 在不使用 panda 或 csv 模块 PYTHON 的情况下过滤 csv 文件
- swift - 如何在 Swift 中正确传递 GPUImage ExposureAdjustment“曝光”参数?
- flutter - Flutter 文字背景与图
- java - 我们可以为 WhatsApp 贴纸应用程序实现多个内容提供程序吗?
- sql - 需要 mysql 查询来获取学生在单个查询中的 4 列(telegu,maths,social,english)的总分或总和
- python - 使用 WHERE 子句搜索 SQLite3 数据库
- c++ - 接受二维数组,将其乘以整数,并在 C++ 中返回新的二维数组的函数?
- javascript - 如何在 Next.js (React) 中制作粘性页脚
- java - 运行 java 类时,Tomcat 服务器不会在 Eclipse 中启动。引起:java.lang.NoClassDefFoundError: org/json/JSONException
- database - elasticsearch 在单个字段中聚合一些值