.NET FileSystemWatcher を使用して特定のディレクトリを監視する Windows サービスを作成しようとしています。私の計画は、IncludeSubdirectores=True の FileSystemWatcher を 1 つ持つことです。ただし、すべてのサブディレクトリを監視する必要はありません。したがって、私のアプローチは、実際に監視したいディレクトリの「ホワイトリスト」を作成することです。ファイルが変更され、それが実際に気にかけているディレクトリにあった場合、何らかのアクションを実行します。
ここで私の質問が来ます。「ホワイトリスト」を作成するために、app.config のカスタム構成セクションを使用しようとしています。
<ApplicationMonitoring>
<MainDirectoryMonitored path="C:\MonitoredApps" />
<SubDirectoriesMonitored>
<Directory application="App1" path="C:\MonitoredApps\App1" />
<Directory application="App2" path="C:\MonitoredApps\App2" />
<Directory application="App3" path="C:\MonitoredApps\App3\SubDir1" />
</SubDirectoriesMonitored>
</ApplicationMonitoring>
これまでのところ、とても良いですよね?fileSystemWatcher.Path = を「MainDirectoryMonitored」の「path」属性に設定し、「SubDirectoriesMonitored」を列挙して、監視したいものかどうかを確認できます。
私が知りたいのは、サブディレクトリのパスが実際に監視対象のメイン ディレクトリのパスのどこかにあることを検証できるかどうかです。
例: C:\MonitoredApps\App3\SubDir1 が実際にC:\MonitoredApps などの配下にあることを検証します。
ユーザーにとって非常に直感的で、正しく入力する必要があることはわかっていますが、可能であればすべてのエラーを排除したいと考えています。
これはある種のカスタム構成バリデーターで実行できると思いますが
、a)構成の別の値を使用して検証できる
かどうかはわかりません.b)それを行う方法についての手がかりがありません:)