Количество папок внутри каталога

#c# #asp.net

#c# #asp.net

Вопрос:

Как мне узнать количество папок внутри каталога?

Я пытаюсь использовать System.IO.Directory , но безуспешно.

Комментарии:

1. meta.stackexchange.com/questions/2950/…

Ответ №1:

У вас есть несколько вариантов:

 int directoryCount = System.IO.Directory.GetDirectories(@"c:yourpath").Length
  

или

 var directoryInfo = new System.IO.DirectoryInfo(@"c:yourpath");
int directoryCount = directoryInfo.GetDirectories().Length;
  

Если вам нужно выполнить с ними другие действия, и вы используете .NET 4, вы можете использовать функцию DirectoryInfo.EnumerateDirectories() также из соображений производительности.

Так что да, вариантов много. Если у вас все еще возникают проблемы, возможно, вы захотите сообщить нам, что не сработало при использовании System.IO.Directory.

Ответ №2:

Использовать:

 Directory.GetDirectories(@"C:").Length
  

конечно, вместо @"C:" вы используете любой путь, для которого хотите узнать количество подкаталогов. Метод также имеет перегрузки, позволяющие выполнять поиск по определенному шаблону и рекурсивный поиск.

Комментарии:

1. EnumerateDirectories(…).Count() может быть меньше потребления памяти, если количество подкаталогов велико.

2. @svick: Спасибо, я не знал об этом. На моем рабочем месте я все еще застрял на версии 3.5, поэтому некоторые из менее заметных функций 4.0 для меня потеряны 🙂

Ответ №3:

Для подсчета файлов в папке:-

 string[] My_file = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
MessageBox.Show("Files Found: "   My_file.Length.ToString());
  

Для подсчета папок в каталогах:-

 MessageBox.Show("Folder Count:"   Directory.GetDirectories(folderBrowserDialog1.SelectedPath).Length.ToString(), "Message");