private void Scan(IFolderModel model, DirectoryInfo info, int generation, out List <FileEvent> addUpdateBatch, out List <FileEvent> deleteBatch) { addUpdateBatch = new List <FileEvent>(100); foreach (FileInfo fi in info.EnumerateFiles(_filter)) // throws ArgumentException if filter is bad { FileEntry foundEntry; if (model.TryGetValue(fi.Name, out foundEntry)) { foundEntry.Generation = generation; if (fi.LastWriteTimeUtc > foundEntry.ModifiedDate) { foundEntry.ModifiedDate = fi.LastWriteTimeUtc; var fileEvent = new FileEvent(FileEventType.Update, foundEntry); addUpdateBatch.Add(fileEvent); } } else { var newEntry = new FileEntry(fi.Name, fi.LastWriteTimeUtc, FileEntry.NotCounted, generation); model.AddFile(newEntry); var fileEvent = new FileEvent(FileEventType.Create, newEntry); addUpdateBatch.Add(fileEvent); } } var filesMissingInThisGeneration = model.FromGenerationPriorTo(generation); deleteBatch = new List <FileEvent>(100); foreach (FileEntry fileEntry in filesMissingInThisGeneration.ToArray()) { var fileEvent = new FileEvent(FileEventType.Delete, fileEntry); model.DeleteFile(fileEntry); deleteBatch.Add(fileEvent); } }
public FolderPicker_MV(IFolderModel model) { FolderModel = model; m_SongList = new ObservableCollection<SongFile>(); CWD = string.Empty; }
public FolderMonitorPolled(IFolderModel model, string folder, string filter) { }