Рекурсивная функция создания вложенных каталогов
08.12.07
Разработка - Универсальные функции
Рекурсивная функция создания вложенных каталогов
Навеяно http://www.infostart.ru/articles/256/
Символ № используется как конец обработанной части строки
Функция СущКат(Кат) экспорт
Если СтрДлина(Кат)<4 Тогда Возврат 1 КонецЕсли;
Атриб=\"\"
ФС.АтрибутыФайла(Кат, ,Атриб);
Если Сред(Атриб,4,1)=\"1\" Тогда Возврат 1 КонецЕсли;
Возврат 0;
КонецФункции
Процедура создкат(Знач Кат) экспорт
Если (Прав(Кат,1)<>\"\\") и (Прав(Кат,1)<>\"№\") Тогда Кат=Кат+\"\\" КонецЕсли;
Если Найти(Кат,\"№\")=0 Тогда
КолБуквДиска=Найти(Кат,\":\")-1;
Кат=Лев(Кат,КолБуквДиска+2)+\"№\"+Прав(Кат,СтрДлина(Кат)-(КолБуквДиска+2));
КонецЕсли;
ПозНом=Найти(Кат,\"№\");
Если СущКат(Лев(Кат,ПозНом-2))=0 Тогда ФС.СоздатьКаталог(Лев(Кат,ПозНом-2)) КонецЕсли;
Если Найти(Кат,\"№\")=СтрДлина(Кат) Тогда Возврат КонецЕсли;
Кат=Лев(Кат,ПозНом-1)+Прав(Кат,СтрДлина(Кат)-ПозНом);
ПозНом=Найти(Прав(Кат,СтрДлина(Кат)-(ПозНом-1)),\"\\")+ПозНом-1;
Кат=Лев(Кат,ПозНом)+\"№\"+Прав(Кат,СтрДлина(Кат)-ПозНом);
СоздКат(Кат);
КонецПроцедуры
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.