Вам необходимо установить свойство Filter приблизительно для длинного списка файлов, которые вы хотите, чтобы они могли выбирать. Поскольку вы не сказали нам, что это такое, я могу предложить только пример:
dlg.Filter = "Office Files|*.doc;*.xls;*.ppt";
Вы можете комбинировать спецификации:
dlg.Filter = "Imagey kinda files|*.png;*.jpg;*.gif|Texty kinda files|*.txt;*.log|Just Jpegs|*.jpg|All files|*.*";
Каждая пара значений "n1|x1|n2|x2..."
образует " текст для отображения в комбинации фильтров "(n1 et c) /" список расширений файлов, отображаемых в средстве выбора файлов "(x1 et c) пара
Установка фильтра влияет только на файлы, которые показывает OFD; пользователь может просто ввести *.*
в поле имени файла и нажать клавишу возврата, а затем в любом случае выбрать EXE-файл. Возможно, вам придется написать код в конце того, что извлекает список файлов из OFD, чтобы убедиться, что он не обрабатывает EXE. Неразумно полагаться на фильтр для полного предотвращения отправки вам определенных файлов; пользователь может даже переименовать EXE и JPG и при этом отправить его вам.
Если «не отправлять EXE» - это ограничение, предназначенное, например, для предотвращения передачи вирусов (потому что вы просто собираетесь пользователь выбирает и отправляет его дословно) вам нужно будет фактически посмотреть байты того, какие файлы выбирает пользователь, и убедиться, что они соответствуют заявленному имени. (Для этого вам нужно будет найти файловые структуры и т. Д. c .. Например, файлы JPEG имеют текст «JFIF» в байтах 6-10, программы обычно начинаются с байтов «MZ», zip-файлы начинаются с «PK» и т. Д. c).
Если это просто для предотвращения мусора из-за того, что эти файлы будут загружены в процедуру изменения размера, просто перехватите любые исключения, которые вызывает процедура, и игнорируйте плохой файл. Пользователю по-прежнему полезно знать, что они могут загружать, поэтому у меня все еще есть фильтр, но я просто молча игнорирую любую хрень, которую они отправляют