- Модуль: learning
- Путь к файлу: ~/bitrix/modules/learning/classes/general/clearnhelper.php
- Класс: CLearnHelper
- Вызов: CLearnHelper::CopyDirFiles
static function CopyDirFiles($path_from, $path_to, $ReWrite = True, $Recursive = False)
{
if (mb_strpos($path_to."/", $path_from."/") === 0 || realpath($path_to) === realpath($path_from))
return false;
if (is_dir($path_from))
{
CheckDirPath($path_to."/");
}
elseif(is_file($path_from))
{
$p = bxstrrpos($path_to, "/");
$path_to_dir = mb_substr($path_to, 0, $p);
CheckDirPath($path_to_dir."/");
if (file_exists($path_to) && !$ReWrite)
return False;
@copy($path_from, $path_to);
if(is_file($path_to))
@chmod($path_to, BX_FILE_PERMISSIONS);
return True;
}
else
{
return True;
}
if ($handle = @opendir($path_from))
{
while (($file = readdir($handle)) !== false)
{
if ($file == "." || $file == "..")
continue;
// skip files with non-safe names
if ( ! CLearnHelper::IsBaseFilenameSafe($file) )
continue;
if (is_dir($path_from."/".$file) && $Recursive)
{
self::CopyDirFiles($path_from."/".$file, $path_to."/".$file, $ReWrite, $Recursive);
}
elseif (is_file($path_from."/".$file))
{
if (file_exists($path_to."/".$file) && !$ReWrite)
continue;
@copy($path_from."/".$file, $path_to."/".$file);
@chmod($path_to."/".$file, BX_FILE_PERMISSIONS);
}
}
@closedir($handle);
return true;
}
return false;
}