【问题标题】:How to display a list of files from a directory如何显示目录中的文件列表
【发布时间】:2019-09-22 14:46:35
【问题描述】:

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

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++builder vcl filelist


    【解决方案1】:

    您收到一个错误,因为您尝试分配一个 String,而应该是 TEdit*

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-10-21
      • 2018-10-19
      • 2011-09-11
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多