private List<FileInfo> GetFilesFromDir(ScannerArgument argument) { List<FileInfo> searchFiles = new List<FileInfo>(); foreach (string ext in argument.FileExtensions) { FileInfo[] files = argument.Directory.GetFiles("*" + ext, argument.SearchOption); searchFiles.AddRange(files); } //Windows medtager "minsang.mp3-missing" uden følgende tjek... for (int i = 0; i < searchFiles.Count; i++) { bool ok = false; foreach (string ext in argument.FileExtensions) if (searchFiles[i].Extension.ToLower() == ext) { ok = true; break; } if (!ok) { searchFiles.RemoveAt(i); i--; } } return searchFiles; }
public ScannerTracer RunScannerAsync(params string[] ignoreFiles) { if (!directory.Exists) throw new ArgumentException("Directory must exist.", "directory"); if (IsRunning) throw new InvalidOperationException("RunScannerAsync is already running."); isrunning = true; ScannerArgument arg = new ScannerArgument(directory, searchoption, parseAdd, parseUpdate, removeDeadFiles, extensionList.ToArray(), existingFiles.ToArray(), ignoreFiles); worker.RunWorkerAsync(arg); return arg.Tracer; }