void FileWatcher() { //Message("FileWatcher"); //Thread.Sleep(100); //Thread.Sleep(4000); DateTime dt = DateTime.Now; // wait for 1/10 sec while (DateTime.Now.Subtract(dt).TotalMilliseconds < 4000) { if ((_fileState & CradleOfRomeFileState.ConfigChange) == CradleOfRomeFileState.ConfigChange) { break; } Thread.Sleep(100); } bool profilesChange = (_fileState & CradleOfRomeFileState.ProfilesChange) == CradleOfRomeFileState.ProfilesChange; bool configChange = (_fileState & CradleOfRomeFileState.ConfigChange) == CradleOfRomeFileState.ConfigChange; //Message("FileWatcher profilesChange {0} configChange {1}", profilesChange, configChange); if (profilesChange) { SaveCraddleFiles(!configChange); } _fileState = CradleOfRomeFileState.None; _fileWatcherRunning = false; }
public void Start() { string filter = "*.xml"; Stop(); GetLevelsFromSaveDirectory(); _lastLevel = _currentLevel; _fileState = CradleOfRomeFileState.None; _fileWatcherRunning = false; _fileSystemWatcher = new FileSystemWatcher(); _fileSystemWatcher.Path = _cradleFileDirectory; _fileSystemWatcher.Filter = filter; _fileSystemWatcher.Changed += new FileSystemEventHandler(FileChanged); _fileSystemWatcher.EnableRaisingEvents = true; Message("Craddle of rome 2 watcher started, blitz {0}, current level easy {1} normal {2} hard {3} number {4}", _blitzLevelType, _currentLevel.EasyLevel, _currentLevel.NormalLevel, _currentLevel.HardLevel, _currentLevel.FileNumber); }
void FileChanged(object sender, FileSystemEventArgs e) { // sender = FileSystemWatcher //wr.Print("file changed : {0} name \"{1}\"", GetTimeString(), e.Name); if (IsCraddleRunning()) { //Message("file changed \"{0}\"", e.Name); StartFileWatcher(); if (e.Name == "profiles.xml") { _fileState |= CradleOfRomeFileState.ProfilesChange; } else if (e.Name == "config.xml") { _fileState |= CradleOfRomeFileState.ConfigChange; } } }