最近我将FTP连接到Sharefile。 Sharfile在我的ftp文件夹中创建一个.syncdb文件。我有代码检查我的FTP文件夹中是否创建了新文件,将它们复制到新文件夹并发送文件已到达的通知电子邮件。有时我现在收到.syncdb-wal和syncdb-shm文件的电子邮件。这实际上不会创建要复制的文件,但它会创建一个通知电子邮件并创建一个令人讨厌的空白文件夹。我试图不包括这些文件与过滤器,但它似乎没有工作。我不确定您是否可以为过滤器声明多个扩展名。下面是我试图用来过滤文件以不包含扩展名为.syncdb-wal和syncdb-shm的文件的代码,我可能错过了一些简单的东西。
$MonitorFolder = Get-Content "C:\Users\RickG\Desktop\ScanFTPDeptClients\Pathlist.txt"
$filter ='*.syncdb-wal, *.syncdb-shm '
foreach ($path in $MonitorFolder){
$watcher = New-Object System.IO.FileSystemWatcher $path, -ne $filter
#Files only. Default is files + directory
$watcher.NotifyFilter = [System.IO.NotifyFilters]'FileName,LastWrite'
}
答案 0 :(得分:2)
不,您无法应用多个文件名过滤器。
检查事件处理程序中的文件名称
$watcher = New-Object System.IO.FileSystemWatcher $path
$watcher.NotifyFilter = [System.IO.NotifyFilters]'FileName,LastWrite'
$watcher.Filter = '*.*'
Register-ObjectEvent $watcher -EventName Created -Action {
if ($EventArgs.Name -eq '.syncdb-wal' -or $EventArgs.Name -eq '.syncdb-shm'){
# nope, not interested
return
}
}