Example #1
0
function d_filelist_all($dir)
{
    setreadable($dir, true);
    if (!@($dh = opendir($dir)) && !@($ftp_list = d_ftplist($dir))) {
        return false;
    }
    if ($dh) {
        $dirs = $files = $fsizes = array();
        /* chdir($dir); */
        while (false !== @($file = readdir($dh))) {
            if ($file == '.' || $file == '..') {
                continue;
            }
            if (is_dir($dir . '/' . $file)) {
                $dirs[] = $dir . '/' . $file;
            } else {
                $files[] = $dir . '/' . $file;
            }
            $fsizes[$dir . '/' . $file] = filesize($dir . '/' . $file);
        }
        closedir($dh);
    } else {
        extract($ftp_list);
    }
    foreach ($dirs as $v) {
        $res = d_filelist_all($v);
        $dirs = array_merge($dirs, $res['dirs']);
        $files = array_merge($files, $res['files']);
        $fsizes = array_merge($fsizes, $res['fsizes']);
    }
    return array('dirs' => $dirs, 'files' => $files, 'fsizes' => $fsizes);
}
Example #2
0
function d_file_exists($file)
{
	setreadable(dirname($file),true);
	if(file_exists($file)) return true;
	if(abs_path($file,false)==abs_path($GLOBALS['CFG']['ftp']['dir'],false)) return true; // for root directory
	if(!$info = d_ftplist(dirname($file))) return false;
	return in_array(abs_path($file,false),$info['dirs']) || in_array(abs_path($file),$info['files']);
}