如何找到触发 FileSystemWatcher 事件的文件

How to find the file that triggered a FileSystemWatcher event

我正在使用 FileSystemWatcher 检查目标目录中的已更改文件。但是,我似乎无法访问有关触发事件的文件的信息,或者我根本不知道如何访问。

$Action = {
    # Output name of trigger file here.
}

$FileSystemWatcher = New-Object System.IO.FileSystemWatcher $TargetDirectory
Register-ObjectEvent -InputObject $FileSystemWatcher -EventName Changed -Action $Action

因为我在多个目标目录中等待事件,所以使用同步等待的替代方案对我来说不是选择。

我是不是做错了什么?

使用此代码时:

$Action = {
    # Output name of trigger file here.
    Write-Host $Event.SourceEventArgs.FullPath
}

$TargetDirectory = "c:\temp\fsw"
$FileSystemWatcher = New-Object System.IO.FileSystemWatcher $TargetDirectory
Register-ObjectEvent -InputObject $FileSystemWatcher -EventName Changed -Action $Action

我得到了正在更改的文件的完整路径。