我有一个PowerShell进程,它监视SQL文件(在数据库项目中),然后在文件更改时触发操作。基本设置如下。
$global:SQLFileWatcher = New-Object IO.FileSystemWatcher $rootFolder, $sqlFilter -Property @{
IncludeSubdirectories = $true
NotifyFilter = [IO.NotifyFilters]'LastWrite'
}
$onSqlCreated = Register-ObjectEvent $global:SQLFileWatcher Changed -SourceIdentifier SqlFileChanged -Action {
#Only called when a new file is added to DB project
Write-Host "HERE"
}
在更改已在Visual Studio数据库项目中创建的现有文件时,它不会触发文件观察程序,就好像LastWrite时间未更新一样。如果我打开Notepad ++并编辑,这可以正常工作。此外,如果我添加一个新的SQL文件(到数据库项目),那么它会在创建时触发文件观察器事件以及该文件的任何更新,这是最奇怪的部分。
为什么不更新现有文件的文件属性,只更新新文件?或者,更好的问题可能是:是否有更好的NotifyFilter
设置可以代替" LastWrite"?