Фильтр Openfiledialog не ограничивает открытие файлов путем ввода полного пути к файлу в текстовом поле Имя файла C # winform

#c# #winforms #openfiledialog

#c# #winforms #openfiledialog

Вопрос:

Я использую OpenFileDialog для открытия определенного типа файлов, для этого я устанавливаю Filter свойство OpenFileDialog . Настройка фильтра скрывает только файлы, которые не имеют расширений фильтра, но пользователь все равно может выбрать эти файлы, введя имя файла в OpenFileDialog текстовом поле «Имена файлов:». Я хочу, чтобы пользователь не мог выбрать файл, который находится вне настроек фильтра, даже введя путь вручную в текстовом поле OpenFileDialog «Имена файлов:».

Это код.

     private void button7_Click(object sender, EventArgs e)
    {
        EncryptFile();
    }

    public void EncryptFile()
    {
        OpenFileDialog dialog = new OpenFileDialog();
        dialog.Filter = "Office Files|*.doc;*.xls;*.ppt";
        dialog.InitialDirectory = @"C:";
        dialog.Title = "Please select an office file to encrypt.";
        string fileName = "";
        if (dialog.ShowDialog() == DialogResult.OK)
        {

            fileName = dialog.FileName; 
            /// doing something
        }
    }
  

введите описание изображения здесь

Комментарии:

1. Функция, а не ошибка. Используйте его событие FileOk, чтобы отклонить файлы, которые вам не нравятся.

2. @HansPassant, я не говорю, что это ошибка! скорее я искал какой-либо встроенный способ в OpenFileDialog самостоятельно, чтобы моя явная проверка могла удалить то, что вы предлагаете.