Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > Рaбота с дисками и папками. |
Автор: Leshakk 28.11.2022, 13:34 | ||||
Добрый день. Подскажите пожалуйста, возможно ли это упростить? Или сократить? Задача, есть каталог, который строго определен, меняться динамически не будет и должен лежать строго на диске 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"; и по всем веткам, загнать в массив. Так продумать тобы в маасиве куски путей были в правильной последвоательности И в цикле обрабатывать этот массив одним методом, в параметрах меняя лишь индекс элемента. С учетом того что дирректория, хоть и большая, но конечная, это все реально сделать руками. |