private void NewFileCreated(object sender, FileSystemEventArgs e) { var fileInfo = new FileInfo(e.FullPath); if (!LockedFileWatcher.IsFileLocked(new FileInfo(e.FullPath))) { OnNewFile(fileInfo); } _lockedFileWatcher.Watch(fileInfo); }
public FileMessageStore(string directoryPath) { _directoryPath = directoryPath; _metaDirectory = new DirectoryInfo(Path.Combine(directoryPath, SimpleMessageQueueConstants.MetaDirectoryName)); _dataDirectory = new DirectoryInfo(Path.Combine(directoryPath, SimpleMessageQueueConstants.DataDirectoryName)); _fileWatcher = new FileSystemWatcher(_dataDirectory.FullName) { EnableRaisingEvents = true, NotifyFilter = NotifyFilters.CreationTime }; _lockObject = new Object(); _fileWatcher.Created += NewFileCreated; _filesToIgnoreList = new HashSet <string>(); _lockedFileWatcher = new LockedFileWatcher(new TimeSpan(0, 0, 0, 0, 100)); _lockedFileWatcher.FileUnlocked += (sender, info) => OnNewFile(info); }