Убедитесь, что любой каталог существует внутри данного - PullRequest
0 голосов
/ 29 февраля 2012

Мое приложение - Windows, C # 3.0. Я хочу убедиться, что данный каталог не содержит подкаталогов. Наивный код вроде

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

будет работать очень медленно на каталогах, которые содержат, например, 10000 подкаталогов, потому что он создаст список подкаталогов, в то время как мне достаточно даже одного каталога.

Есть ли способ в .NET быстро определить 1 подкаталог?

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012
if (Directory.EnumerateDirectories().Any())

EnumerateDirectories будет возвращать каталоги только при перечислении возвращенной последовательности (отложенное выполнение).

1 голос
/ 29 февраля 2012

Используйте функцию перегрузки, это будет искать только каталоги в текущем каталоге, а не все дерево:

if (Directory.GetDirectories(path, "*.*", SearchOption.TopDirectoryOnly).Length != 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...