protected async Task <bool> checkFile(CheckMode check) #endif { lock (_sync) if (_disposed) { return(false); } if (_fileInfo.WasChanged(check.HasFlag(CheckMode.Attr))) { return(true); } if (check.HasFlag(CheckMode.Hash)) { #if NET40 if (_fileInfo.WasHashChanged()) #else if (await _fileInfo.WasHashChanged().ConfigureAwait(false)) #endif { return(true); } } return(false); }
public IChangeable createChecker(ReadedFileInfo fileInfo, CheckMode checkMode) { if (_fromConfig) { string modeText; if (_monitorType == "Periodic") { modeText = "Time"; } else if (_monitorType == "Watched") { modeText = "System"; } else { throw new NotImplementedException(); } string checkText = "None"; if (checkMode.HasFlag(CheckMode.Hash)) { checkText = "Hash"; } if (checkMode.HasFlag(CheckMode.Attr)) { if (checkText == "None") { checkText = "Attr"; } else { checkText += ",Attr"; } } var settings = string.Format(_xmlFormat, modeText, checkText).ToXmlSettings(); return(FileChecker.TryCreate(settings, fileInfo)); } else { if (_monitorType == "Periodic") { return(new PeriodicFileChecker(fileInfo, TimeSpan.FromMilliseconds(100), checkMode)); } if (_monitorType == "Watched") { return(new WatchedFileChecker(fileInfo, TimeSpan.FromMilliseconds(100), checkMode)); } } throw new NotImplementedException(); }
private void watcherOnModify(object sender, FileSystemEventArgs e) { try { if (_checkMode.HasFlag(CheckMode.Attr)) { onChanged(); } else { _are.Set(); } } catch (Exception ex) { throw new Exception(MsgErrorWhileFileChecking, ex); } }
protected async Task<bool> checkFile(CheckMode check) { lock(_sync) if (_disposed) return false; if (_fileInfo.WasChanged(check.HasFlag(CheckMode.Attr))) return true; if (check.HasFlag(CheckMode.Hash)) { if (await _fileInfo.WasHashChanged().ConfigureAwait(false)) return true; } return false; }
public IChangeable createChecker(ReadedFileInfo fileInfo, CheckMode checkMode) { if (_fromConfig) { string modeText; if (_monitorType == "Periodic") modeText = "Time"; else if(_monitorType == "Watched") modeText = "System"; else throw new NotImplementedException(); string checkText = "None"; if(checkMode.HasFlag(CheckMode.Hash)) checkText = "Hash"; if(checkMode.HasFlag(CheckMode.Attr)) { if(checkText == "None") checkText = "Attr"; else checkText += ",Attr"; } var settings = string.Format(_xmlFormat, modeText, checkText).ToXmlSettings(); return FileChecker.TryCreate(settings, fileInfo); } else { if (_monitorType == "Periodic") return new PeriodicFileChecker(fileInfo, TimeSpan.FromMilliseconds(100), checkMode); if (_monitorType == "Watched") return new WatchedFileChecker(fileInfo, TimeSpan.FromMilliseconds(100), checkMode); } throw new NotImplementedException(); }