2016-02-17 3 views
-1

EDIT: Я забыл добавить, за исключениемСчитывание нескольких файлов на строку

Я сделал этот код, пытаясь прочитать несколько файлов в одну строку только (позже я могу split'em, каждый файл имеет слова в конце, как разделитель).

Но каждый раз, когда я пытаюсь открыть файлы, это бросает мне исключение: Дополнительная информация: Ссылка на объект не установлена ​​в экземпляр объекта.

Я попытался изменить код, но не работал. Я новичок в C# и не могу найти то, что я делаю неправильно. Любая помощь будет оценена. PS: Я использую отдельный класс для хранения переменных - так как я знаю, что мне нужны некоторые из них в других частях кода, я решил сделать их глобальными.

Благодаря

Код:

private void openPPFToolStripMenuItem_Click(object sender, EventArgs e) 
     { 
      using (OpenFileDialog open = new OpenFileDialog()) 
      { 
       // Filter for PPF 
       open.Filter = "PPF Files|*.PPF"; 
       open.Multiselect = true; 
       open.Title = "Select a PPF File"; 
       if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
       { 
//Obtaining list of filenames 
        vars.fullFileName = new List<String>(open.FileNames); 
        vars.filepath = open.FileName; 
        foreach (string fileName in vars.fullFileName) 
        { 
         LoadedFiles.Items.Add(fileName.Substring(fileName.LastIndexOf(@"\") + 1)); 
        } 
        for(int i=0; i< vars.fullFileName.Count; i++) 
        { 
         using (var sr = new StreamReader(vars.filepath)) 
         { 
          vars.files[i] = sr.ReadToEnd(); //I supposed that each string position could hold an entire file. 
         } 
         string teste1 = vars.files[3].ToString(); //Just trying to show the contents 
         textBox1.Text = teste1; 
        } 


       } 
      } 
     } 

Класс:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace PPF_Converter_2._0 
{ 
    class vars 
    { 
     public static List<String> fullFileName; 
     public static string filepath; 
     public static List<String> textdata; 
     public static string sLine = ""; 
     public static string data; 
     public static string[] files; 


    } 
} 
+0

что такое исключение? –

+0

Можете ли вы добавить сведения об исключении, которое вы получаете? –

+0

Да, извините, я полностью забыл, моя ошибка. Дополнительная информация: Ссылка на объект не установлена ​​в экземпляр объекта. –

ответ

0

У меня проблема с чтением файла.

Попробуйте вот так.

foreach (String file in openFileDialog1.FileNames) 
    { 
     string fileContent = File.ReadAllText(file); 
    //do your activity here 
    } 
+0

Комбинируя свой ответ с одним marco (об инициализации массива), я получил то, что хотел. Создал массив string [], в котором каждая позиция содержит весь файл. Поскольку у меня также есть имена файлов в другой переменной (в том же порядке), я могу начать работать над своими вещами. Большое спасибо ! –

0

массиве "файлы" не инициализируется. Вам нужно что-то вроде этого:

Files = new string[3]; 

Если массив должен содержать 3 элемента.

Смежные вопросы