private long CountSubDirectoriesSize(DirectoryInfo[] subDirectories, bool isRoot) { long resultSize = 0; for (int i = 0; i < subDirectories.Length; i++) { DirectoryInfo subDirInfo = subDirectories[i]; DirTreeNode childNode = AddChild(subDirInfo); resultSize += childNode.ProcessCountSize(); if (isRoot) { //max value = number of subdirectories in the root //+1 because of files in the root itself ReportProgress(i + 1, subDirectories.Length + 1); } #if (DEBUG) System.Threading.Thread.Sleep(100); #endif } return(resultSize); }
private long CountFilesSize(FileInfo[] dirFiles, bool addSizeItem) { long resultSize = 0; foreach (FileInfo file in dirFiles) { try { resultSize += file.Length; } catch (IOException) { DirData data = new DirData(file.Name); DirTreeNode childNode = AddChild(data); childNode.Subscriber.AddSize(data); } } if (resultSize > 0 && addSizeItem) { DirData data = new DirData(); data.Size = new SizeInfo(resultSize); data.FilesOnly = true; DirTreeNode childNode = AddChild(data); childNode.Subscriber.AddSize(data); } return(resultSize); }
public new DirTreeNode AddChild(DirData data) { DirTreeNode childNode = new DirTreeNode(data); Children.Add(childNode); Subscriber.AddChild(childNode); return(childNode); }
public DirTreeNode AddChild(DirectoryInfo dirInfo) { DirTreeNode childNode = new DirTreeNode(dirInfo); Children.Add(childNode); Subscriber.AddChild(childNode); return(childNode); }