2016-02-17 32 views
-1

編輯:我忘了補充異常讀取多個文件到串上

我做了這個代碼,試圖讀取多個文件合併爲一個字符串只(後來我可以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的答案(關於初始化數組)結合起來,我得到了我想要的。創建一個字符串[]數組,每個位置持有整個文件。因爲我也有其他變量的文件名(以相同的順序),我可以開始在我的東西上工作。非常感謝 ! –

0

你陣 「文件」 未初始化。你需要像這樣的東西:

Files = new string[3]; 

如果數組應該包含3個元素。