Дерево каталогов

Тема в разделе "PHP", создана пользователем pro10026, 22 янв 2011.

Модераторы: latteo
  1. pro10026

    pro10026 Постоялец

    Регистр.:
    10 мар 2010
    Сообщения:
    58
    Симпатии:
    1
    Нужен скрипт который будет брать пути из файла и строить дерево каталогов.
    main_cat\podcat\eshepodcat\primer.rar
    main_cat\podcat1\eshepodcat1\primer2.rar
    ну и так далее...
     
  2. kkkoopp

    kkkoopp Постоялец

    Регистр.:
    18 май 2010
    Сообщения:
    121
    Симпатии:
    24
    Выводит список файлов из указанной директории.
    Настраивайте его под свои нужды.

    PHP:
    if ($handle opendir('.')) { // Вместо точки подставляете любую другую директорию
        
    while (false !== ($file readdir($handle))) {
            if (
    $file != "." && $file != "..") {
                echo 
    "$file\n";
            }
        }
        
    closedir($handle);
    }
     
  3. pro10026

    pro10026 Постоялец

    Регистр.:
    10 мар 2010
    Сообщения:
    58
    Симпатии:
    1
    Мне не из дериктории нужно! Директории должны браться из файла (например path.txt)пути такого типа:
    main_cat\podcat\eshepodcat\primer.rar
    main_cat\podcat1\eshepodcat1\primer2.rar
     
  4. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    Разбей по слешам пути и разнеси их по массивам. Получится многомерный массив. Дальше сделай сортировку каждого уровня массива и строй итоговое отсортированное и упорядоченное дерево
     
    pro10026 нравится это.
  5. Alexanderod

    Alexanderod Создатель

    Регистр.:
    15 янв 2009
    Сообщения:
    49
    Симпатии:
    11
    1)пока не закончились строки в path.txt считываем
    2)заходим в директорию
    3)считываем поддиректории\файлы
    4)пишем в виде дерева туда куда тебе нужно
    готово:)
     
    pro10026 нравится это.
  6. kkkoopp

    kkkoopp Постоялец

    Регистр.:
    18 май 2010
    Сообщения:
    121
    Симпатии:
    24
    Если я правильно понят, то эти пути лежат в файле path.txt?
    Тогда алгоритм такой:

    - считывам все пути с файла path.txt построчно в массив путей
    - создаем новый массив (он будет многомерный)
    - в цикле разбиваем первую строку пути по слэшам
    - проверяем первый элемент main_cat, если не существует, то создаем в массиве элемент первого уровня main_cat
    - далее проверяем в элементе main_cat (второй уровень вложенности), не существует ли элемента podcat, если нет, то создаем
    - далее проверяем существует ли в элементе podcat элемент eshepodcat (третий уровень), если нет, то добавляем
    - проверяем, есть ли в элементе eshepodcat файл primer.rar (четвертый уровень), если нет, то добавляем

    так с каждой строкой пути в цикле.
     
    pro10026 нравится это.