read())) { if ($file != "." && $file != "..") { $path = $dir . DS . $file; is_dir($path) ? self::delDir($path) : @unlink($path); } } $mydir->close(); @rmdir($dir); } } /** * 复制目录 * @param $source [源目录路径] * @param $dest [目标目录路径] * @param $cover [拷贝并覆盖同名文件] */ public static function copyDir($source, $dest, $cover = true) { if (!file_exists($dest)) self::makeDir($dest); $handle = opendir($source); while (($item = readdir($handle)) !== false) { if ($item == '.' || $item == '..') continue; $_source = $source . DS . $item; $_dest = $dest . DS . $item; if (is_dir($_source)) { self::copyDir($_source, $_dest, $cover); } else if (is_file($_source)) { if ($cover || (!$cover && !file_exists($_dest))) { copy($_source, $_dest); } } } closedir($handle); } /** * 读取出一个文件夹及其子文件夹下所有文件 * @param $path * @return array|mixed|string */ public static function scanDirs($path) { global $result; $files = scandir($path); foreach ($files as $file) { if ($file != '.' && $file != '..') { if (is_dir($path . '/' . $file)) { $result[] = $path . '/' . $file; self::scanDirs($path . '/' . $file); } else { $result[] = $path . '/' . $file; } } } return $result; } }