За работу с файловой системой в Битрикс D7 отвечают классы пространства Bitrix\Main\IO.

use Bitrix\Main\IO,
    Bitrix\Main\Application;

IO\File

$file = new IO\File(Application::getDocumentRoot() . "/file.txt");

Информация о файле:

$isExist = $file->isExists(); // true, если файл существует

$dir = $file->getDirectory(); // Директория файла в виде объекта IO\Directory
$dir = $file->getDirectoryName(); // Директория файла

$fileName = $file->getName(); // Имя файла
$fileExt = $file->getExtension(); // Расширение файла
$fileSize = $file->getSize(); // Размер файла в байтах
$contentType = $file->getContentType(); // Content-type

$createdAt = $file->getCreationTime(); // Дата создания, timestamp
$accessAt = $file->getLastAccessTime(); // Дата последнего доступа, timestamp
$modifiedAt = $file->getModificationTime(); // Дата модификации, timestamp

$perms = $file->getPermissions(); // Права на файл в виде десятичного числа
$perms = substr(sprintf('%o', $file->getPermissions()), -3); // Права на файл в виде восьмеричного числа

Действия над файлами:

$content = $file->getContents(); // Получить содержание файла
$file->putContents("data"); // Записать содержимое в файл с заменой
$file->putContents("data", IO\File::APPEND); // Дописать содержимое в конец файла
$file->readFile(); // Вывести содержимое файла

$file->rename(Application::getDocumentRoot() . "/new_file.txt"); // Переместить/переименовать файл
$file->delete(); // Удалить файл

У некоторых методов есть статические варианты:

$path = Application::getDocumentRoot() . "/another_file.txt";
IO\File::isFileExists($path); // Проверить существование файла

IO\File::getFileContents($path); // Получить содержание файла
IO\File::putFileContents($path, "data"); // Записать содержимое в файл с заменой
IO\File::putFileContents($path, "data", self::APPEND); // Дописать содержимое в конец файла

IO\File::deleteFile($path); // Удалить файл

Reg.ru

IO\Directory

$dir = new IO\Directory(Application::getDocumentRoot() . "/test/");

Если директории не существует, её можно создать:

$dir->create(); // Создаёт директорию с указанным в конструкторе путём

Информация о директории:

$isExist = $dir->isExists(); // true, если директория существует

$createdAt = $dir->getCreationTime(); // Дата создания, timestamp
$accessAt = $dir->getLastAccessTime(); // Дата последнего доступа, timestamp
$modifiedAt = $dir->getModificationTime(); // Дата модификации, timestamp

$perms = $dir->getPermissions(); // Права на директорию в виде десятичного числа
$perms = substr(sprintf('%o', $dir->getPermissions()), -3); // Права на директорию в виде восьмеричного числа

Действия над директориями:

$childDir = $dir->createSubdirectory("child"); // Создает и возвращает вложенную директорию с указанным именем 
$dir->rename(Application::getDocumentRoot() . "/another_path/"); // Переместить/переименовать директорию
$dir->delete(); // Удалить директорию

Получить массив файлов в директории:

$files = $dir->getChildren(); // Массив объектов IO\File

У некоторых методов есть статические варианты:

$path = Application::getDocumentRoot() . "/another_dir/";
IO\Directory::createDirectory($path);   // Создать директорию
IO\Directory::deleteDirectory($path);   // Удалить директорию

IO\Directory::isDirectoryExists($path); // Проверить существование

IO\Path

$path = Application::getDocumentRoot() . "/some_dir/some_file.ext";
$fileExt = IO\Path::getExtension($path); // Возвращает расширение файла
$fileName = IO\Path::getName($path);     // Возвращает имя файла
$fileDir = IO\Path::getDirectory($path); // Возвращает директорию файла (полный путь)

Читайте также: