2012-07-29 37 views
0
string[] directories = textBox5.Text.Split(new Char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); 
FileSystemWatcher[] fileSysWatchers = new FileSystemWatcher[directories.Length]; 
for (int i = 0; i < directories.Length; i++) 
     { 
      directories[i] = directories[i].Replace("\n", ""); 
      directories[i] = directories[i].Replace("\r", ""); 
      fileSysWatchers[i].Path = directories[i]; 
      if (checkBox8.Checked) 
      { 
       fileSysWatchers[i].Created += new FileSystemEventHandler(Form1_Created); 
      } 
     }  

我得到的NullReferenceException下一行:的NullReferenceException同時處理FileSystemWatcher的[]

fileSysWatchers[i].Path = directories[i]; 

我檢查目錄[0],發現它沒有。路徑但我不明白爲什麼,它必須。
基本上,我想創造一些列表中的每個目錄中的特定FileSystemWatcher的和只使用一個事件處理程序處理所有的「創建」事件。如果有一些方法只使用一個FileSystemWatcher監視多個目錄,我想知道這一點。
對不起,我的英文不完美。

回答

4

你只分配能容納FileSystemWatcher的實例的數組,但不是實例本身。

你缺少以下行(即崩潰的一個前):

fileSysWatchers[i] = new FileSystemWatcher(); 

這不是Pathnull,它是FileSystemWatcher的實例本身。

相關問題