Как отобразить список файлов из каталога - PullRequest
0 голосов
/ 22 сентября 2019

Моя задача - отобразить список файлов в данном каталоге.Ниже приведен мой существующий код:

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;

И некоторые другие решения, но каждый раз, когда я получаю сообщение об ошибке.

Есть идеи?

1 Ответ

3 голосов
/ 22 сентября 2019

Вы получаете сообщение об ошибке, потому что вы пытаетесь назначить String там, где ожидается TEdit*.

Если вы хотите, чтобы TFileListBox отображал определенный тип (типы) файла программным путемизбавьтесь от TFilterComboBox и используйте вместо него свойство TFileListBox::Mask:

Ограничивает отображение файлов в списке файлов.

УстановитьМаска для регулярного выражения, чтобы ограничить поле списка файлами, которые соответствуют маске.Значением маски является имя файла, которое может включать в себя подстановочные знаки.

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

При этом используемые вами компоненты пользовательского интерфейса файла древние , они были разработаны во времяЭра Windows 3.1 не должна использоваться в современном программном обеспечении.

Посмотрите на функции RTL FindFirst() и FindNext(), чтобы программно перечислять файлы с фильтрацией по маске.Подробнее см. Поиск файла в документации Embarcadero.

...