Ejemplo n.º 1
0
 private void DirectoryScanned(object sender, DirectoryScannedEventArgs e)
 {
     scannedDirectories += 1;
     if (e is DirectoryDeletedEventArgs)
     {
         deletedDirectories += 1;
     }
 }
Ejemplo n.º 2
0
 private static void OnDirectoryScanned(DirectoryScannedEventArgs eventArgs)
 {
     Task.Run(() =>
     {
         Console.WriteLine($"Scanning for changes at {DateTime.UtcNow.TimeOfDay}");
         // Console.WriteLine($"Found files: {string.Join(' ', eventArgs.FilePathModificationTimes.Keys)} in {eventArgs.Directory} at {eventArgs.TimeStamp.ToLocalTime()}");
     });
 }
Ejemplo n.º 3
0
 protected void CheckForDeletedFiles(DirectoryScannedEventArgs eventArgs)
 {
     foreach (var missingFilePath in TrackedPaths.Keys.Except(eventArgs.FilePathModificationTimes.Keys).ToList())
     {
         var missingFileEventArgs = new TrackedFileEventArgs(missingFilePath);
         TrackedPaths.Remove(missingFilePath);
         OnTrackedFileMissing?.Invoke(missingFileEventArgs);
     }
 }
Ejemplo n.º 4
0
        public void OnDirectoryScanned(DirectoryScannedEventArgs eventArgs)
        {
            eventArgs = eventArgs ?? throw new ArgumentNullException(nameof(eventArgs));

            if (CancellationToken.IsCancellationRequested)
            {
                return;
            }

            CheckForNewOrModifiedFiles(eventArgs);

            CheckForDeletedFiles(eventArgs);
        }
Ejemplo n.º 5
0
 protected void CheckForNewOrModifiedFiles(DirectoryScannedEventArgs eventArgs)
 {
     foreach (var filePathModificationTime in eventArgs.FilePathModificationTimes)
     {
         var trackedFileEventArgs = new TrackedFileEventArgs(filePathModificationTime.Key);
         if (TrackedPaths.TryGetValue(filePathModificationTime.Key, out var value))
         {
             if (value < filePathModificationTime.Value)
             {
                 OnTrackedFileModified?.Invoke(trackedFileEventArgs);
             }
             TrackedPaths[filePathModificationTime.Key] = filePathModificationTime.Value;
         }
         else
         {
             TrackedPaths.Add(filePathModificationTime);
             OnNewFileScanned?.Invoke(trackedFileEventArgs);
         }
     }
 }