baseDir = $cfg_basedir; $this->activeDir = $activepath; } //更改文件名 function RenameFile($oldname, $newname) { $oldname = $this->baseDir.$this->activeDir."/".$oldname; $newname = $this->baseDir.$this->activeDir."/".$newname; if (($newname != $oldname) && is_writable($oldname)) { rename($oldname, $newname); } ShowMsg("成功更改一个文件名", "file_manage_main.php?activepath=".$this->activeDir); return 0; } //创建新目录 function NewDir($dirname) { $newdir = $dirname; $dirname = $this->baseDir.$this->activeDir."/".$dirname; if (is_writable($this->baseDir.$this->activeDir)) { MkdirAll($dirname, $GLOBALS['cfg_dir_purview']); CloseFtp(); ShowMsg("成功创建一个新目录", "file_manage_main.php?activepath=".$this->activeDir."/".$newdir); return 1; } else { ShowMsg("创建新目录失败,因为这个位置不允许写入", "file_manage_main.php?activepath=".$this->activeDir); return 0; } } /** * 移动文件 * * @access public * @param string $mfile 文件 * @param string $mpath 路径 * @return string */ function MoveFile($mfile, $mpath) { if ($mpath != "" && !preg_match("#\.\.#", $mpath)) { $oldfile = $this->baseDir.$this->activeDir."/$mfile"; $mpath = str_replace("\\", "/", $mpath); $mpath = preg_replace("#\/{1,}#", "/", $mpath); if (!preg_match("#^/#", $mpath)) { $mpath = $this->activeDir."/".$mpath; } $truepath = $this->baseDir.$mpath; if (is_readable($oldfile) && is_readable($truepath) && is_writable($truepath)) { if (is_dir($truepath)) { copy($oldfile, $truepath."/$mfile"); } else { MkdirAll($truepath, $GLOBALS['cfg_dir_purview']); CloseFtp(); copy($oldfile, $truepath."/$mfile"); } unlink($oldfile); ShowMsg("成功移动文件", "file_manage_main.php?activepath=$mpath", 0, 1000); return 1; } else { ShowMsg("移动文件 $oldfile -> $truepath/$mfile 失败,可能是某个位置权限不足", "file_manage_main.php?activepath=$mpath", 0, 1000); return 0; } } else { ShowMsg("对不起,您移动的路径不合法", "-1", 0, 5000); return 0; } } /** * 删除目录 * * @param unknown_type $indir */ function RmDirFiles($indir) { if (!is_dir($indir)) { return; } $dh = dir($indir); while ($filename = $dh->read()) { if ($filename == "." || $filename == "..") { continue; } else if (is_file("$indir/$filename")) { @unlink("$indir/$filename"); } else { $this->RmDirFiles("$indir/$filename"); } } $dh->close(); @rmdir($indir); } /** * 获得某目录合符规则的文件 * * @param unknown_type $indir * @param unknown_type $fileexp * @param unknown_type $filearr */ function GetMatchFiles($indir, $fileexp, &$filearr) { $dh = dir($indir); while ($filename = $dh->read()) { $truefile = $indir.'/'.$filename; if ($filename == "." || $filename == "..") { continue; } else if (is_dir($truefile)) { $this->GetMatchFiles($truefile, $fileexp, $filearr); } else if (substr($filename, -strlen($fileexp)) === $fileexp) { $filearr[] = $truefile; } } $dh->close(); } /** * 删除文件 * * @param unknown_type $filename * @return unknown */ function DeleteFile($filename) { $filename = $this->baseDir.$this->activeDir."/$filename"; if (is_file($filename)) { @unlink($filename); $t = "文件"; } else { $t = "目录"; if ($this->allowDeleteDir == 1) { $this->RmDirFiles($filename); } else { // 完善用户体验,by:sumic ShowMsg("系统禁止删除".$t."", "file_manage_main.php?activepath=".$this->activeDir); exit; } } ShowMsg("成功删除一个".$t."", "file_manage_main.php?activepath=".$this->activeDir); return 0; } } //目录文件大小检测类 class SpaceUse { var $totalsize = 0; function checksize($indir) { $dh = dir($indir); while ($filename = $dh->read()) { if (!preg_match("#^\.#", $filename)) { if (is_dir("$indir/$filename")) { $this->checksize("$indir/$filename"); } else { $this->totalsize = $this->totalsize + filesize("$indir/$filename"); } } } } function setkb($size) { $size = $size / 1024; if ($size > 0) { list($t1, $t2) = explode(".", $size); $size = $t1.".".substr($t2, 0, 1); } return $size; } function setmb($size) { $size = $size / 1024 / 1024; if ($size > 0) { list($t1, $t2) = explode(".", $size); $size = $t1.".".substr($t2, 0, 2); } return $size; } }