Копирование файлов и папок методами PHP и Bitrix

В PHP существует функция copy() которая создает копию файла, чье имя передано в параметре source, в файле с именем dest. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Воспользуемся copy() при написании своей функции copyFile()

Задача:

  1. Скопировать файлы и папки из одной директории 1 в директорию 2
  2. Не копировать файлы которые уже есть в директории 2

  • if (is_dir($from)) — проверяем объект что это каталог
  • @mkdir($to); — создаем директорию (символ @ не покажет нам ошибку если не создастся каталог)
  • с copy() все понятно
  • $d = dir($from); — создаем объект для работы с каталогом
  • $d->read() — читаем файлы и папки объекта каталога
  • $d->close() — завершает работу с объектом каталога
  • file_exists — проверяем наличие указанного файла или каталога( чтобы по 100 раз не переписывать файлы)

подсмотрено на ресурсе http://space-base.ru/


Копирование файлов из одной папки в другую Bitrix API

Тоже самое можно проделать задействовав Bitrix API а точнее CopyDirFiles

Параметры функции

Параметр Описание
path_from Абсолютный путь к каталогу (файлу), содержимое которой нужно скопировать.
path_to Абсолютный путь к каталогу, в который надо скопировать. Путь указанный в данном параметре будет предварительно проверен функцией CheckDirPath.
rewrite Перезаписывать ли существующие файлы.
Необязательный параметр, по умолчанию равен «true» (перезаписывать).
recursive Копировать ли рекурсивно все подкаталоги и файлы входящие в путь указанный в параметре from.
Необязательный параметр, по умолчанию равен «false» (копировать не рекурсивно).
delete_after_copy Удалить ли путь указанный в параметре from после того как копирование будет завершено (т.е. по сути — сделать перенос каталогов и файлов).
Необязательный параметр, по умолчанию равен «false» (не удалять).
exclude Если данный параметр задан, то из копирования будут исключены файлы / папки, название которых начинается со значения данного параметра.

Примеры использования

 

 

Добавить комментарий