private List<FileEntry> CollectFileEntries(string directory, IProgress<String> progressHandler, CancellationToken cancellationToken) { var handler = new TraversalHandler() { ProgressHandler = progressHandler }; var traverser = new FileSystemTraverser(cancellationToken); traverser.Traverse(directory, handler); return handler.Entries; }
public override void ProcessEntry(FileSystemTraverser.TraversalEntry traversalEntry) { FileInfo fileInfo = traversalEntry.Info as FileInfo; if (null != fileInfo) { _actionFilter.MaybeExecute(()=> { Debug.WriteLine(fileInfo.FullName); }); ProgressHandler?.Report(fileInfo.FullName); String name = fileInfo.Name; String location = fileInfo.DirectoryName; long length = fileInfo.Length; Entries.Add(new FileEntry() { Name = name, Location = location, Size = length }); } }