VisitTree
The extension method IFileSystem.VisitTree(string path, int depth) visits a tree structure of a filesystem.
IFileSystem ram = new MemoryFileSystem();
ram.CreateDirectory("/tmp/");
ram.CreateDirectory("/mnt/");
ram.CreateDirectory("/usr/lex/");
ram.CreateDirectory("c:/dir/dir/");
ram.CreateFile("/tmp/helloworld.txt", Encoding.UTF8.GetBytes("Hello World!\r\n"));
ram.CreateDirectory("file://c:/temp");
foreach (TreeVisit.Line line in ram.VisitTree())
{
Console.WriteLine(line);
}
"" ├── "" │ ├── "mnt" │ ├── "tmp" │ │ └── "helloworld.txt" │ └── "usr" │ └── "lex" ├── "c:" │ └── "dir" │ └── "dir" └── "file:" └── "" └── "c:" └── "temp"
Parameter depth determines visit depth.
foreach (TreeVisit.Line line in ram.VisitTree(depth: 1))
{
Console.WriteLine(line);
}
"" ├── "" ├── "c:" └── "file:"
Parameter path determines start location.
foreach (TreeVisit.Line line in ram.VisitTree(path: "/tmp/"))
{
Console.WriteLine(line);
}
"tmp" └── "helloworld.txt"