|
Модераторы: Partizan, gambit |
|
Leshakk |
|
||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 28.11.2022 Репутация: нет Всего: нет |
Добрый день. Подскажите пожалуйста, возможно ли это упростить? Или сократить?
Задача, есть каталог, который строго определен, меняться динамически не будет и должен лежать строго на диске P:\ Программа проверяет есть ли раздел/том/диск P? Код:
Затем начинает проверять все папки сверху до низу. Если есть нужная папка -ок! Если нет создаем. Проверяем наличие левых папок с левыми именами, находим убиваем. Переходим на уровень ниже. И вот тут начинается веселье. Это что получается для каждого уровня вот такой кусок кода? И чем глубже в иерархию тем запутанее? А если несколько веток будет, это же вообще с ума сойти можно. код:
Есть еще вот такие размышления: Можно конечно проверять ветки целиком P:\\2020Test\\a\\1"; Потом P:\\2020Test\\a\\2"; потом P:\\2020Test\\b\\1"; потом P:\\2020Test\\b\\2"; И так же целиком их убивать при наличии ошибки. Например если есть P:\\2020Test\\b\\аброкодабра"; то ее целиком убить и создать P:\\2020Test\\b\\1"; и P:\\2020Test\\b\\2"; Но из за одной аброкадабры, которая лежит в самом низу, убивать всю ветку, как то зверски. А если там еще и файлы лежат.... Поэтому хотелось бы иметь контроль не тлько по веткам а еще и по глубине. Например P:\\2020Test проверка и какие-то действия если надо потом P:\\2020Test\\b проверка и какие-то действия если надо потом P:\\2020Test\\b\\1"; проверка и какие-то действия если надо И вот тут приходит единственная мысль на ум, создать один метод, который принимает в качестве аргумента кусок пути, и обрабатывает его, проверяет наличие, чистит, убивает лишнее, создает чего нехватает. Все куски путей от P:\ до P:\\2020Test\\b\\1"; и по всем веткам, загнать в массив. Так продумать тобы в маасиве куски путей были в правильной последвоательности И в цикле обрабатывать этот массив одним методом, в параметрах меняя лишь индекс элемента. С учетом того что дирректория, хоть и большая, но конечная, это все реально сделать руками. |
||||
|
|||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |