private void AddFiles(VideoNode node) { var dir = Path.Combine(options.RootDirectory, node.GetFullPath()); var files = Directory.GetFiles(dir); foreach (var file in files.Where(f => ValidFileExtension(f))) { var video = new VideoNode() { Title = file.Split('\\').Last(), Parent = node, }; node.Children.Add(video); flatList.Add(video); } }
private void TraverseChildren(VideoNode parent) { var dirs = Directory.GetDirectories(Path.Combine(options.RootDirectory, parent.GetFullPath())); AddFiles(parent); foreach (var dir in dirs) { var child = new VideoNode() { Title = dir.Split('\\').Last() }; parent.Children.Add(child); child.Parent = parent; flatList.Add(child); TraverseChildren(child); } }