Пользовательских расширений файлов, открытых в подхватывает сопоставление с образцом в именем
Привет всем,
Я использую стандартное диалоговое окно открытия файла в моем приложении WinForms, чтобы запросить у пользователя файл лицензии (расширение ".lic") при запуске, если я не нахожу его в предопределенной папке. Мой поисковый фильтр установлен на:
string strFilter = "файлы лицензий (*.lic)|*.lic";
Я заметил небольшую проблему: если в папке, например, есть ... "my.licensemanager.dll" в выбранной папке, затем, поскольку есть совпадение ".lic" как часть *filename* (а не расширение), он включается в список отображаемых файлов - но будучи DLL в этом случае, он, очевидно, никогда не будет допустимым выбором.
Я бы подумал, что поиск "*.lic" не взял бы этот файл - только "*.lic*" взял бы его, если бы это были критерии поиска, которые я бы использовал, - но нет, я использую "*.lic". Вот как ведет себя "dir *.lic" в командной строке - DLL исключается, если я не добавлю завершающий "*".
Я использую диалоговое окно открытия файла уже несколько десятилетий - pre-.NET, pre-MFC, возвращаясь к сырому Win32 API даже в C...и я не замечал этого до сих пор.
Я понимаю, что, вероятно, могу каким-то образом расширить диалог открытия файла, чтобы получить полный контроль над тем, что будет включено, но это (а) кажется мне излишним, и (Б) расширение диалога открытия файла всегда несет с собой некоторые предостережения или непреднамеренную причуду, которая хуже, чем исходная проблема, которую я пытаюсь решить.
Есть ли альтернативный шаблон поиска, который я мог бы использовать-возможно, вариант регулярного выражения, который я пропустил, вместо обычного текста? Я не помню, чтобы когда-либо видел это в документации.
Что я уже пробовал:
Не так много альтернатив, чтобы попробовать - я следую документации к письму, и это кажется мне плохой реализацией.