Example #1
0
function rmdir_recursive_fn($path)
{
    $path = substr($path, -1) == '/' || substr($path, -1) == '\\' ? $path : $path . '/';
    resetfilelist();
    $files = filelist_fn($path, 1, 0, 'all');
    $files = !is_array($files) ? array() : $files;
    //First delete the files only
    foreach ($files as $k => $v) {
        @chmod($k, 0777);
        if (file_exists($k) && is_file($k) && @filetype($k) == "file") {
            @unlink($k);
        }
    }
    @clearstatcache();
    $folders = filelist_fn($path, 1, 1, 'all');
    $folders = !is_array($folders) ? array() : $folders;
    @krsort($folders);
    //Now Delete the FOLDERS
    foreach ($folders as $k => $v) {
        @chmod($k, 0777);
        if (is_dir($k)) {
            @rmdir($k);
        }
    }
    @rmdir($path);
    @clearstatcache();
}
Example #2
0
function copydir_fn($source, $destination)
{
    $source = substr($source, -1) == '/' || substr($source, -1) == '\\' ? $source : $source . '/';
    $destination = substr($destination, -1) == '/' || substr($destination, -1) == '\\' ? $destination : $destination . '/';
    $source_ = substr($source, 0, -1);
    $destination_ = substr($destination, 0, -1);
    if (!is_dir($destination)) {
        mkdir($destination);
    }
    resetfilelist();
    $files = filelist($source, 1, 1, 'all');
    $files = !is_array($files) ? array() : $files;
    // Make the folders
    foreach ($files as $k => $v) {
        mkdir_recursive(str_replace($source_, $destination_, $k), $globals['dirchmod']);
        @chmod(str_replace($source_, $destination_, $k), fileperms($k));
    }
    @clearstatcache();
    resetfilelist();
    $files = filelist($source, 1, 0, 'all');
    $files = !is_array($files) ? array() : $files;
    // Copy the files
    foreach ($files as $k => $v) {
        if (file_exists($k) && is_file($k) && @filetype($k) == "file") {
            copy($k, str_replace($source_, $destination_, $k));
            @chmod(str_replace($source_, $destination_, $k), fileperms($k));
        }
    }
    @clearstatcache();
    resetfilelist();
    return true;
}