2017-08-11 61 views
0

我想在lastwritetime超過16分鐘時發送電子郵件。我想遍歷我的文件並檢查lastwritetime。超過16分鐘時發送電子郵件提醒。我正在尋找使用存儲圖像的本地或系統時間。我已經掌握了這一點,但系統電子郵件過於頻繁,在我運行測試並且圖像未更新時不會提示。我究竟做錯了什麼?警報電子郵件無法正常工作

try 
{ 
    string files = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\ChicagoSkyvision\ScreenScrape\ScreenScrape.png"; 
    string files1 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\ChicagoSeachange\ScreenScrape\ScreenScrape.png"; 
    string files2 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\IndianaSkyvision\ScreenScrape\ScreenScrape.png"; 
    string files3 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\IndianaSeachange\ScreenScrape\ScreenScrape.png"; 
    string files4 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\DetroitSkyvision\ScreenScrape\ScreenScrape.png"; 
    string files5 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\MichiganSeachange\ScreenScrape\ScreenScrape.png"; 
    string files6 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\LansingSkyvision\ScreenScrape\ScreenScrape.png"; 
    string files7 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\MinnesotaSeachange\ScreenScrape\ScreenScrape.png"; 
    string files8 = @"\\cyclops-ch2-10\users\!SptEntEng\Desktop\ScreenScrapes\HoustonSeachange\ScreenScrape\ScreenScrape.png"; 

    var FilePaths = new List<string>(); 
    FilePaths.Add(files); 
    FilePaths.Add(files1); 
    FilePaths.Add(files2); 
    FilePaths.Add(files3); 
    FilePaths.Add(files4); 
    FilePaths.Add(files5); 
    FilePaths.Add(files6); 
    FilePaths.Add(files7); 
    FilePaths.Add(files8); 

    foreach (string file in FilePaths) 
    { 
     FileInfo fi = new FileInfo("ScreenScrape.png"); 
     if (fi.LastWriteTime < DateTime.Now.AddMinutes(16)) 
     { 
      client.Send(CyclopsCentral); 
      break; 
     } 
    } 
+4

這看起來與你的[前一個問題(https://stackoverflow.com/questions/45600276/email-alert-sends-email -when-lastwritetime-is-current) – stuartd

+0

你調試過嗎? – Harsh

+3

可能重複[電子郵件警報當lastwritetime是當前發送電子郵件](https://stackoverflow.com/questions/45600276/email-alert-sends-email-when-lastwritetime-is-current) –

回答

4

當您比較未來時間時,您的支票將始終爲真。

if (fi.LastWriteTime < DateTime.Now.AddMinutes(16)) 

你需要改變它到-16

if (fi.LastWriteTime < DateTime.Now.AddMinutes(-16)) 
+0

具有諷刺意味的是,在[相同的上一個問題](https://stackoverflow.com/questions/45600276/email-alert-sends-email-when-lastwritetime-is-current)代碼**是**'DateTime.Now .AddMinutes(-16)' – stuartd

相關問題