コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }