public void ConstructTreeDfs(Folder dir)
{
var directory = new ZlpDirectoryInfo(dir.Name);
if (directory.Exists)
{
ZlpDirectoryInfo[] childDirs;
try
{
childDirs = directory.GetDirectories();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return;
}
var childFolders = new Folder[childDirs.Length];
for (var i = 0; i < childDirs.Length; i++)
{
childFolders[i] = new Folder(childDirs[i].FullName);
}
dir.AddChildFolders(childFolders);
var files = directory.GetFiles();
var f = new File[files.Length];
for (var i = 0; i < files.Length; i++)
{
try
{
f[i] = new File(files[i].FullName, files[i].Length);
}
catch (Exception)
{
continue;
}
}
dir.AddFiles(f);
if (DeepWalk)
{
foreach (var item in childFolders)
{
ConstructTreeDfs(item);
}
}
}
}