// return: Is this directory empty? static bool WalkDirectoryTree(DirectoryInfo root, IsEmptyDirectory pred) { DirectoryInfo[] subDirs = root.GetDirectories(); bool areSubDirsEmpty = true; foreach (DirectoryInfo dirInfo in subDirs) { if (false == WalkDirectoryTree(dirInfo, pred)) { areSubDirsEmpty = false; } } bool isRootEmpty = pred(root, areSubDirsEmpty); return(isRootEmpty); }
// return: Is this directory empty? static bool WalkDirectoryTree(DirectoryInfo root, IsEmptyDirectory pred) { var subDirs = root.GetDirectories(); var areSubDirsEmpty = true; var total = subDirs.Length; for (var index = 0; index < total; index++) { var dirInfo = subDirs[index]; if (false == WalkDirectoryTree(dirInfo, pred)) { areSubDirsEmpty = false; } } var isRootEmpty = pred(root, areSubDirsEmpty); return(isRootEmpty); }
// return: Is this directory empty? static bool WalkDirectoryTree(DirectoryInfo root, IsEmptyDirectory pred) { DirectoryInfo[] subDirs = root.GetDirectories(); bool areSubDirsEmpty = true; foreach (DirectoryInfo dirInfo in subDirs) { if ( false == WalkDirectoryTree(dirInfo, pred) ) areSubDirsEmpty = false; } bool isRootEmpty = pred(root, areSubDirsEmpty); return isRootEmpty; }