Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2014, 19:30   #1
s4egol
Пользователь
 
Регистрация: 05.09.2012
Сообщений: 56
По умолчанию помощь с с#

Здравствуйте товарищи программисты. Суть моего вопроса вот в чем. Я короче делаю рекурсивный обход каталога. Но как я его так сказать делаю:
1) ввожу в textbox путь к директории
2) копирую текст из textbox в переменную string = > dataDir = textBox1.Text;
3)ну и создаю объект типа DirectoryInfo по заданному пути
DirectoryInfo dir = new DirectoryInfo(dataDir);
4) далее рекурсивный обход

а я хочу так сказать, что б выбор папки не был геморойными. То есть что - то на подобии: жмякаем кнопку, появляется стандартное окно где можно выбрать диск и папку. Выбираем папку, в textbox возвращается путь к директории ну а дальше программная реализация уже идет.

Может кто подскажет как это реализовать?!?!?!
s4egol вне форума Ответить с цитированием
Старый 13.11.2014, 19:38   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык обход-то причем если вопрос о выборе папки?
FolderBrowserDialog
OpenFileDialog
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.11.2014, 19:47   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

для выбора директории см OpenFileDialog, дальше все как у тебя.

хотя, я бы еще упростил сам рекурсивный обход, как-то так:

Код:
public static IEnumerable<FileSystemInfo> Dirs(this DirectoryInfo di, Func<FileSystemInfo, bool> predicate)
{
	var files = di.EnumerateFiles().Where(p => predicate(p));
	foreach (var fi in files)
		yield return fi;

	var dirs = di.EnumerateDirectories().Where(p => (p.Attributes & FileAttributes.Hidden) == 0);
	foreach (var fi in dirs.SelectMany(dir => dir.Dirs(predicate)))
		yield return fi;
}

использование 

foreach (var fi in new DirectoryInfo("...").Dirs(p => ...))
{ ... }
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
Помощь!!!!!! Танюшка!!!!!!! Фриланс 7 25.10.2007 12:02