Powershell:FileSystemWatcher 仅监控某些子文件夹
Powershell: FileSystemWatcher monitor only certain subfolders
如何在 Powershell 中使用 FileSystemWatcher 仅监控文件夹的某些子文件夹?
我像这样创建一个新的 FileSystemWatcher:
$folder = 'path\to\root\monitoring\folder'
$filter = '*.xml'
$fsw = New-Object IO.FileSystemWatcher
$fsw.Path = $folder
$fsw.Filter = $filter
$fsw.IncludeSubdirectories = $true
$fsw.EnableRaisingEvents = $true
那个根监控文件夹里面有一个树状结构:
任务 01
- 工作
- 批准
- 批准
任务02
- 工作
- 批准
- 批准
任务03
- 工作
- 批准
- 批准
我只想检查 "approved" 个文件夹中的更改。
最简单的解决方案是
$folder = 'path\to\root\monitoring\folder\*\approved'
但这似乎不太奏效...
您将不得不在每个要监控的目录上设置一个观察器,因为路径不支持通配符(请参阅此 [= 上的 例外部分 15=]: FileSystemWatcher.Path)
尝试使用过滤器 属性 来支持可能的通配符路径也不会起作用。
嗯,一个可能的解决方法是评估我们的事件处理程序(创建、更改等)中的“路径”值,以查看它是否符合您要监视的文件夹的模式,并且处理。如果适合,则继续运行事件处理程序中的代码,如果不适合,则直接return退出处理程序。
如何在 Powershell 中使用 FileSystemWatcher 仅监控文件夹的某些子文件夹?
我像这样创建一个新的 FileSystemWatcher:
$folder = 'path\to\root\monitoring\folder'
$filter = '*.xml'
$fsw = New-Object IO.FileSystemWatcher
$fsw.Path = $folder
$fsw.Filter = $filter
$fsw.IncludeSubdirectories = $true
$fsw.EnableRaisingEvents = $true
那个根监控文件夹里面有一个树状结构:
任务 01
- 工作
- 批准
- 批准
任务02
- 工作
- 批准
- 批准
任务03
- 工作
- 批准
- 批准
我只想检查 "approved" 个文件夹中的更改。
最简单的解决方案是
$folder = 'path\to\root\monitoring\folder\*\approved'
但这似乎不太奏效...
您将不得不在每个要监控的目录上设置一个观察器,因为路径不支持通配符(请参阅此 [= 上的 例外部分 15=]: FileSystemWatcher.Path) 尝试使用过滤器 属性 来支持可能的通配符路径也不会起作用。
嗯,一个可能的解决方法是评估我们的事件处理程序(创建、更改等)中的“路径”值,以查看它是否符合您要监视的文件夹的模式,并且处理。如果适合,则继续运行事件处理程序中的代码,如果不适合,则直接return退出处理程序。