Check that any directory exists inside given one

2019-09-01 06:24发布

问题:

My application is Windows, C# 3.0. I want to make sure that a directory given does not contains subdirectories. Naive code like

if (Directory.GetDirectories(path).Length != 0)

will work very slow on directories which contain e.g. 10000 subdirectories, because it will build a list of subdirectories, while even 1 directory is already enough for me.

Is there a way in .NET to determine 1 subdirectory quickly?

回答1:

if (Directory.EnumerateDirectories().Any())

EnumerateDirectories will return directories only as you enumerate the returned sequence (deferred execution).



回答2:

Use the function overload this will only look for directories in the current directory, not the entire tree:

if (Directory.GetDirectories(path, "*.*", SearchOption.TopDirectoryOnly).Length != 0)