[РЕШЕНО] Обход папок на диске

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Sert, 16 июн 2015.

  1. TopicStarter Overlay
    Sert
    Offline

    Sert Опытный в 1С

    Регистрация:
    4 фев 2011
    Сообщения:
    365
    Симпатии:
    12
    Баллы:
    29
    Есть у кого под рукой готовый текст для обхода папок на диске?
    Нужно в одной папке выбирать все файлы *.xlsx, но только те, что лежат в папках с именем "Загрузить". Сами эти папки лежат в других папках, имя которой тоже нужно взять в список.
    Т.е. структура:
    Нужная папка
    .....Категория 1
    ..........Загрузить
    ..........Архив
    ..........Прочее
    .....Категория 2
    ..........Загрузить
    ..........Архив
    ..........Барахло
    Нужно получить Таблицу значений с колонками Категория и ИмяФайла (полное)

    Мне полностью код не надо, сам допилю, просто обход папок. Но если кто-то сможет накидать быстро мой вариант, то не откажусь :)
  2. TopicStarter Overlay
    Sert
    Offline

    Sert Опытный в 1С

    Регистрация:
    4 фев 2011
    Сообщения:
    365
    Симпатии:
    12
    Баллы:
    29
    Сделал сам :)
    Код:
    &НаСервере
    Функция ПолчитьСписокФайлов()
        Результат=Новый Массив;
      
        МассивЗагруженныхФайлов=ПолучитьСписокЗагруженныхФайлов();
      
        СписокПапок1=НайтиФайлы(КаталогЗагрузки,"*");
        Для Каждого ТекФайл1 Из СписокПапок1 Цикл
            Если ТекФайл1.ЭтоФайл() Тогда Продолжить КонецЕсли;
            Категория=ТекФайл1.Имя;
            СписокПапок2=НайтиФайлы(ТекФайл1.ПолноеИмя,"Загрузить");
            Для Каждого ТекПапка2 Из СписокПапок2 Цикл
                Если ТекПапка2.ЭтоФайл() Тогда Продолжить КонецЕсли;
                СписокФайлов3=НайтиФайлы(ТекПапка2.ПолноеИмя,"*.xlsx");
                Для Каждого ТекФайл3 Из СписокФайлов3 Цикл
                    Если ТекФайл3.ЭтоКаталог() Тогда Продолжить КонецЕсли;
                    ИмяФайла=ТекФайл3.ПолноеИмя;
                    Найден=МассивЗагруженныхФайлов.Найти(ИмяФайла);
                    Если Найден<>Неопределено Тогда Продолжить КонецЕсли;
                    стСтрокаТаблицы=Новый Структура;
                    стСтрокаТаблицы.Вставить("Категория", Категория);
                    стСтрокаТаблицы.Вставить("ИмяФайла", ИмяФайла);
                    Результат.Добавить(стСтрокаТаблицы)
                КонецЦикла
            КонецЦикла
        КонецЦикла;
      
        Возврат Результат
    КонецФункции
    

Поделиться этой страницей