private void AddToScanList(object sender, RoutedEventArgs e) { var button = (Button)e.Source; string row = (string)button.DataContext; try { if (Configuration.PathsNotToScan.Contains(row)) { Configuration.PathsNotToScan.Remove(row); var dir = FlaggedDirectories.Where(f => f.FullPath == row).FirstOrDefault(); if (dir != null) { dir.IsScanable = true; } else { var file = FlaggedFiles.Where(f => f.FullPath == row).FirstOrDefault(); if (file != null) { file.IsScanable = true; } } button.IsEnabled = false; } } catch (Exception ex) { MessageBox.Show($"Error: {ex.Message}", "Error"); } }
public async Task StartScanner(IProgress <ScanProgress> progress) { FlaggedDirectories.Clear(); FlaggedFiles.Clear(); var drives = DriveInfo.GetDrives(); foreach (var driveInfo in drives) { try { await Task.Run(async() => { await Scan(driveInfo.Name, progress, token.Token); }, token.Token); } catch (OperationCanceledException) { var timeElapsed = stopwatch.Elapsed; ScanningStatus = $"Cancelled {timeElapsed:c}"; } catch (Exception ex) { } finally { } } }
private void UpdateProgress(object sender, ScanProgress e) { if (e.IsUpdateStatus) { ScanningStatus = $"Scanning... {e.CurrentDirectory}"; return; } if (stopwatch.IsRunning) { var timeElapsed = stopwatch.Elapsed; ScanningStatus = $"Running... {timeElapsed:c}"; } if (e.IsFile) { FlaggedFiles.Add(e.File); } else { FlaggedDirectories.Add(e.File); } }