2017-08-11 107 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

相关问题