即使FileWatcher應該在UNC上工作,我也遇到了很多問題。由於你的問題不是時間關鍵的,我會創建一個線程來檢查文件是否存在,睡眠幾秒鐘循環,直到發送警報的文件消失。
注意:作爲服務運行需要正在運行的用戶對遠程共享擁有網絡權限。
更新:剛在我們的網絡上做了一個快速測試。運行Windows 7 R2服務器的客戶端運行Windows 2008 R2。增加了幾個文件,無論是小型還是大型文件。在代碼運行時刪除文件沒有任何問題。即使沒有了Thread.Sleep
bool filesDeleted = false;
while (!filesDeleted)
{
DirectoryInfo di = new DirectoryInfo(@"\\server\share\path\");
FileInfo[] files = di.GetFiles();
foreach (var file in files)
{
DateTime created = file.CreationTime;
string fileName = file.Name;
//Do what every you need to check if the two files are still there
}
Thread.Sleep(5000);
}
//Send alert
「我發現該文件已在使用FileWatcher被鎖定」 - 似乎不大可能.... – 2011-02-28 05:17:32
你處理文件,同時通過filewatcher監控。您需要在應用程序中優雅地關閉文件句柄。 – 2011-02-28 05:49:12
發佈您的代碼 - 當您有新文件時,您會做什麼? – VinayC 2011-02-28 06:00:38