SaveDialog предложил имена файлов, чтобы соответствовать фильтру расширения
Когда моя программа отображает SaveDialog для сохранения файла, я могу использовать свойства Filter и Filter Index, чтобы ограничить отображаемые файлы определенными расширениями. Кроме того, когда я устанавливаю свойство DefaultExt, тогда, когда пользователь вводит имя файла, соответствующие файлы в папке отображаются как предложения в раскрывающемся списке, и один из них можно выбрать с помощью мыши. Например, если для фильтра задано значение "*.xml", в диалоговом списке файлов отображаются только имена файлов, соответствующие этому расширению. Но если пользователь введет "Тест", вы получите выпадающий список файлов предложений, таких как: TestA.doc TestB.xml Test123.pdf TestX.xml (если эти файлы присутствуют в папке)
Но я бы хотел, чтобы список предложений содержал только те файлы, которые соответствуют фильтру, например *.xml. Это возможно? Проблема в том, что пользователи могут использовать неверное предложение и сохранить свой файл с неправильным расширением.
1 ответ
TSaveDialog внутренне использует интерфейс IFileDialog Windows. Этот интерфейс не предлагает какого-либо способа изменить способ фильтрации файлов в раскрывающемся текстовом поле предложения в поле "Имя файла".
Вы можете:
- Реализуйте собственный диалог с нуля
- Используйте компонент, такой как DexExpress, который не является бесплатным
- Проверьте результат диалога сохранения после его выполнения и проверьте файл выбора пользователя и покажите правильное сообщение пользователю, если файл недействителен