Example #1
0
        private void WriteToChannel(FileEntry change, FileTaskEnum operation)
        {
            if (_settings.FilterDirectoriesForwardFilesOnly)
            {
                FileAttributes attr = File.GetAttributes(Path.Combine(_settingsFileWatcher.ScanDirectory, change.FileName));
                if (attr.HasFlag(FileAttributes.Directory))
                {
                    Trace.TraceInformation($"[{change.FileName}] is a directory - skipping due to filter");
                    return;
                }
            }

            //Trace.TraceInformation($"Adding changes from [{change.FileName}] - [{change.LastChanges}]");
            if (!_channel.Writer.TryWrite(new FileTask(change.FileName, operation, _lastError)))
            {
                Error($"HandleFileChanges - Channel full: {change.FileName} {operation}");
            }
            else
            {
                if (_lastError != String.Empty)
                {
                    _lastError = String.Empty;
                }
            }
        }
 public FileTask(string fileName, FileTaskEnum fileTask, string lastError)
 {
     this.FileName      = fileName;
     this.FileOperation = fileTask;
     this.LastError     = lastError;
 }