Фильтр диалога с открытым файлом не работает должным образом - PullRequest
0 голосов
/ 13 мая 2019

Я создал небольшое приложение, которое берет файл и загружает его в базу данных SQL.Я хочу, чтобы приложение принимало файлы .CSV, и я применил, как мне кажется, необходимый фильтр, однако пользователи по-прежнему могут просматривать и пытаться загружать файлы других типов, которые мне нужно ограничить.

Я искал наКак отфильтровать типы файлов и применить к коду ниже.Я могу видеть в раскрывающемся списке, когда диалог открытия файла сработал, но на самом деле он ничего не фильтрует;пользователи по-прежнему могут выбирать другие типы файлов и пытаться загрузить их.

OpenFileDialog ofd = new OpenFileDialog();
ofd.InitialDirectory = System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
ofd.Filter = "CSV files (*.csv)|";
ofd.FilterIndex = 1;
if (ofd.ShowDialog() == DialogResult.OK) 
        {
 //Do work here
        }

Есть ли возможность проверить, выбрал ли пользователь cxsv, и остановить процесс, если они этого не сделали?Или для того, чтобы на самом деле делать то, для чего предназначен фильтр, и скрывать другие типы файлов?Большое спасибо заранее

Ответы [ 2 ]

2 голосов
/ 13 мая 2019

Вы устанавливаете только метку фильтра, а не расширение файла.

ofd.Filter = "CSV files (*.csv)|*.csv";
1 голос
/ 13 мая 2019

Вам не хватает расширения файла. Вы можете сослаться на FileDialog.Filter Property для более подробной информации.

ofd.Filter = "CSV files (*.csv)|*.csv";
...