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が発生しています。

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

ディレクトリ[0]を確認したところ、.Pathないことがわかりましたが、理由がわかりません。そうする必要があります。
基本的に、リスト内のディレクトリごとに特定のFileSystemWatcherを作成し、1つのEventHandlerのみを使用してすべての「作成済み」イベントを処理したいと思います。1つのFileSystemWatcherだけを使用して複数のディレクトリを監視する方法がある場合は、それを知りたいと思います。
それが完璧でないなら私の英語でごめんなさい。

4

1 に答える 1

4

FileSystemWatcher インスタンスを保持できる配列のみを割り当てましたが、インスタンス自体は割り当てていません。

次の行がありません (クラッシュする行の前):

fileSysWatchers[i] = new FileSystemWatcher();

Pathそうではなくnull、FileSystemWatcher インスタンスそのものです。

于 2012-07-29T18:15:34.080 に答える