Based on Havard's answer, but a little shorter (and maybe a little easier to read, because it uses !Subdirs.Any() instead of Subdirs.Length == 0 ):
static IEnumerable<string> GetSubdirectoriesContainingOnlyFiles(string path) { return Directory.GetDirectories(path, "*", SearchOption.AllDirectories) .Where( subdir => !Directory.GetDirectories(subdir).Any() ); }
Also note that this requires using System.Linq; since it uses the LINQ query language. (And, of course, using System.IO; for the Directory class :))
Marcus mangelsdorf
source share