0
我遇到了文件系統監視器沒有捕獲添加到文件夾中的第一個文件,但每個後續操作都正常觸發的問題。FileSystemWatcher在第二次更改後觸發事件,但不是第一次
我正在看的文件夾位於網絡共享上。
代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace RTTService
{
class FileSystemMonitors : IDisposable
{
FileSystemWatcher WatchFolder = new FileSystemWatcher();
public void StartMonitoringDropFolder()
{
WatchFolder.Path = @"\\<<NETWORKED SHARE>>\inetpub\mailroot\";
WatchFolder.NotifyFilter = WatchFolder.NotifyFilter | NotifyFilters.FileName;
WatchFolder.NotifyFilter = WatchFolder.NotifyFilter | NotifyFilters.Attributes;
WatchFolder.Created += new FileSystemEventHandler(WatchFolder_Action);
WatchFolder.Deleted += new FileSystemEventHandler(WatchFolder_Action);
WatchFolder.Changed += new FileSystemEventHandler(WatchFolder_Action);
WatchFolder.EnableRaisingEvents = true;
}
void WatchFolder_Action(object sender, FileSystemEventArgs e)
{
if (e.ChangeType == WatcherChangeTypes.Changed)
{
using (Email Email = new Email())
{
Email.ParseInterpretStoreDropFolderForAllMessages(false, false, false);
}
}
}
public void Dispose()
{
WatchFolder.Dispose();
}
}
}
如果在if(e.ChangeType == ...)之前記錄包含「e.FullPath」和「e.ChangeType」的行,該怎麼辦?這種行爲對我來說是不可重現的。它是普通的Windows共享還是SaMBa實現? – CodeCaster
爲什麼你在尋找Changed時還想創建? –
我切換到使用更改而不是創建,因爲創建的事件從未被添加到文件夾時被觸發。但是,改變的事件是。編輯:這是一個Windows共享。 –