3

背景情報: サービスに実装された FileSystemWatcher クラスを使用して、ファイルの変更を監視しています。onCreate イベントがトリガーされたときに Argument Exception (Path は有効な形式ではありません) をスローするコーディングのセクションを次に示します。

FileMonitor.CS

public partial class FileMonitor:ServiceBase
{
 public FileSystemWatcher Watcher = new FileSystemWatcher();

    Private void FileWatcher()
    {
    FileActionHandler ActionHandler = new FileActionHandler();
    Watcher.Created += new FileSystemEventHandler(ActionHandler.onCreate);
    Watcher.Deleted += new FileSystemEventHandler(ActionHandler.onDelete);
    Watcher.Renamed += new RenamedEventHandler(ActionHandler.onRenamed);
    Watcher.EnableRaisingEvents = true;
    }
}

FileActionHandler.CS

 class FileActionHandler
 {
  FileMonitor FileMon = new FileMonitor();
  public void onCreate/onRename/onDelete(object source, FileSystemEventArgs e)
    {
      try
      {
       FileMon.Watcher.EnableRaisingEvents = false;
      }
      catch
      {
       /* Exception Code */
      }
      finally
      {
       FileMon.Watcher.EnableRaisingEvents = true;
      }
    }
  }

質問: 例外がスローされる理由と、それを解決するにはどうすればよいかについて、誰かアドバイスをもらえますか?

4

1 に答える 1

9

数週間前に自分でやったときに同じ問題に遭遇しました。私が見つけたのは、他のものを設定する前にパスを設定する必要があるということでした。したがって、オブジェクトを宣言した直後:

FileSystemWatcher watchfolder = new FileSystemWatcher();
watchfolder.Path = ConfigurationManager.AppSettings["MonitorPath"];

ここで詳細を読むことができます: Windows 用のファイル監視サービスを作成する

これが役立つことを願っています

于 2011-08-26T15:55:54.080 に答える