![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 28.11.2022
Сообщений: 3
|
![]()
Добрый день. Подскажите пожалуйста, возможно ли это упростить? Или сократить?
Задача, есть каталог, который строго определен, меняться динамически не будет и должен лежать строго на диске 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"; и по всем веткам, загнать в массив. Так продумать тобы в маасиве куски путей были в правильной последвоательности И в цикле обрабатывать этот массив одним методом, в параметрах меняя лишь индекс элемента. С учетом того что дирректория, хоть и большая, но конечная, это все реально сделать руками. Эскать какие-то экзотические метода, классы и Linq которые сами все сделают в одну строку, уже нет сил. Последний раз редактировалось Leshakk; 28.11.2022 в 13:29. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,829
|
![]()
Начните с простого: DriveInfo можно передать букву нужного диска, а не делать цикл.
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 28.11.2022
Сообщений: 3
|
![]()
p51x, То есть в куске кода в самом начале поста, проверить наличие диска P и сообщить о его отсутсвии можно просто без циклов?
Спасибо, попробую разобраться. |
![]() |
![]() |
![]() |
#4 | |
Новичок
Джуниор
Регистрация: 28.11.2022
Сообщений: 3
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рaбота з объектами ядра Windows. | andriy1992p | Win Api | 10 | 03.09.2011 22:28 |
кypсовaя рaбота (любой язык программирования) | motaro | Фриланс | 7 | 28.07.2011 12:34 |
Проблема с логическими дисками. | Gol-san | Операционные системы общие вопросы | 9 | 26.08.2010 19:36 |
Непонятка с жесткими дисками | insense | Софт | 6 | 23.10.2009 00:29 |
Проблемы с дисками | ds.Dante | Свободное общение | 6 | 28.09.2009 14:17 |