#c# #asp.net
#c# #asp.net
Вопрос:
Как мне узнать количество папок внутри каталога?
Я пытаюсь использовать System.IO.Directory
, но безуспешно.
Комментарии:
Ответ №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");