Не даёт открыть файл через OpenFileDialog

370
14 мая 2017, 21:25

На форме есть кнопка и она должна открывать текстовые файлы с помощью OpenFileDialog(то есть текствые файлы разбросаны по компьютеру или же нужно открыть не один конкретно а каждый раз разные-но это не важно)

private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog opnfldlg = new OpenFileDialog();
            opnfldlg.InitialDirectory = "c:\\";
            opnfldlg.Filter = "txt files(*.txt)|*.txt|All Files(*.*)|*.*";
            opnfldlg.FilterIndex = 2;
            opnfldlg.RestoreDirectory = true;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {                                
                         DataSet ds = new DataSet();
                         ds.Tables.Add("Temp");
                         StreamReader stred = new 
                         StreamReader(opnfldlg.FileName);//Исключение!
                         string firstLine = stred.ReadLine();
                         //массив имен колонок из файла
                         string[] arraNameColumn = 
 System.Text.RegularExpressions.Regex.Split(firstLine, ";");
                         for (int i = 0; i < arraNameColumn.Length; i++)
                         {
                             ds.Tables[0].Columns.Add(arraNameColumn[i]);
                         }
                         string Line = stred.ReadLine();
                         while (Line != null)
                         {
            string[] arraCell = System.Text.RegularExpressions.Regex.Split(Line, ";");
                             ds.Tables[0].Rows.Add(arraCell);
                             Line = stred.ReadLine();
                         }
                         dataGridView1.DataSource = ds.Tables[0];                  
                         stred.Close();
                         dataGridView1.AllowUserToAddRows = false;
                            }                                   
            }

Но выскакивает такое исключение на этой строке

StreamReader stred = new  StreamReader(opnfldlg.FileName)
Необработанное исключение типа "System.ArgumentException" в mscorlib.dll 
Дополнительные сведения: Пустое имя пути не допускается.

После объявления OpenFileDialog было добавлено следующее:

FileIOPermission fioper = new FileIOPermission(PermissionState.Unrestricted);
 fioper.AllLocalFiles = FileIOPermissionAccess.Read;

Но безрезультатно.

По шаговая отладка показала следующее что название открываемого файла нигде не обозначается. Наверное так не должно быть.

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

Answer 1

Ээээ... Вы показываете юзеру диалог, лежащий в переменной openFileDialog1, а читаете значение из opnfldlg. Исправляйте.

READ ALSO
Отображение изображения из файла в PictureBox

Отображение изображения из файла в PictureBox

В ListBox добавляется музыкаНужно чтобы когда пользователь выберет/выделит музыку в ListBox и после нажмет на Button, то в PictureBox должна отобразится...

302
Вызов функции GetSystemInfo через p/invoke возвращает неверный результат

Вызов функции GetSystemInfo через p/invoke возвращает неверный результат

ЗдравствуйтеВызывая функцию GetSystemInfo из kernel32 через p/invoke

253
Объявление пространств имен в c#?

Объявление пространств имен в c#?

Всем приветПочему в данном примере:

252
Взаимодействие таблиц User, Student, Teacher

Взаимодействие таблиц User, Student, Teacher

Делаю подобие школьного сайтаВ приложении MVC 4 заимплементил кастомный membership provider, соответственно при помощи code first entity framework сгенерировал...

238