Технологии
Файловый ввод и ввывод - вопрос №201109
Добрый день.
Задача: нужно извлечь подкаталоги из каталога. Например я указываю каталог С:\, далее идут 13 подкаталогов, как провести такую же манипуляцию с этими каталогами? То есть, какие подкаталоги существуют в этих 13 каталогах? Надеюсь я ясно поставил свой вопрос?
А вот и сам код:
DirectoryInfodir = newDirectoryInfo(@«C:\»); //Каталог для манипуляции данными
DirectoryInfo[] subDir = dir.GetDirectories(); //Подкаталоги для дальнейшего рассмотрения
foreach(DirectoryInfodri indirArr)
Console.WriteLine(dri.FullName);
Console.WriteLine("\n"+ subDir.Length +
Заранее благодарю.
Дополнение автора от февраль 11, 2012 г., 14:06:17
Уровень просмотра вложений идет до конца. Типа что-то на подобии комманды tree в cmd (коммандной строке).
Ismagulov Azamat февраль 11, 2012 г.
-
Всего ответов: 3
-
надо только на три уровня вложенности каталогов заглянуть?:) и составить список, так?
-
только может быть лучше использовать класс не DirectoryInfo, а Directory
http://msdn.microsoft.com/ru-ru/library/system.io.directory.aspx
там как раз есть GetDirectories. Потом используя рекурсию:) и foreach доберёшься до любой папки на всю глубину вложенности.
-
Выборка всех файлов директории, включая поддиректории. Если нам необходимо просмотреть все поддиректории, то в методе Directory.GetFiles() следует указать третий параметр SearchOption – перечисление, которое может принимать два значения AllDirectories/TopDirectoryOnly. Из названий уже само собой понятно какой параметр следует выбрать для поиска в поддиректориях.<br /><br /><br />string[]fullfilesPath = <br /> Directory.GetFiles(@"d:\MyProject\MyFiles\", "*.*", <br /> SearchOption.AllDirectories); <br />Удаление ненужных файлов директории. После получения имен необходимых файлов мы можем их удалить следующим способом:<br /><br />Array.ForEach(fullfilesPath, <br /> delegate(string currentPath) <br /> { <br /> // File.Delete(currentPath); <br /> } <br /> );