[原創]php+ajax實現模擬Win文件管理系統
//
本教程由本站原創,轉載請注明來處
作者:www.drise.cn
QQ:271728967
//
就是deldir()函數了這個函數的功能是刪除文件
function deldir($dir){
if(is_dir($dir)){
$rdir = $dir;
if($dirlist = scandir($rdir)){ //進行掃描目錄
array_shift($dirlist);去除".."
array_shift($dirlist);去除"."
foreach($dirlist as $d){
$rd = $rdir.'/'.$d;
if(isset($d) && is_file($rd)){
unlink($rd);//刪除文件
}else{
deldir($rd);//遞歸
}
}
rmdir($rdir);//刪除空目錄
}else{
return false;
}
}
return true;
}
這個函數也用了遞歸算法,進行目錄與文件的刪除,
下面就是filename()函數了,這個函數的功能是對文件進行重命名
function Filename($path,$nname){
// 取得舊文件名
if($path == "" || substr($path,-1) =="/" || strlen($path)>255){
exit('非法操作!');
}else{
$oname = substr($path,strrpos($path,"/")+1);
$opath = substr($path,0,strlen($path) - strlen(substr($path,strrpos($path,"/")+1)));//獲取文件的當前路徑
}
//重命名
if(preg_match("/^\w{1,255}\.\w{1,8}$/i",$nname,$temp_name) && preg_match("/^\w{1,255}\.\w{1,8}$/i",$oname,$otemp_name)){ //匹配文件名
Rename_file_folder($path,$opath,$nname);//些函數下面講到
}else if( preg_match("/^\w{1,255}$/i",$nname,$temp_name) && preg_match("/^\w{1,255}$/i",$oname,$otemp_name)){ //匹配文件夾名
Rename_file_folder($path,$opath,$nname);
}else{
echo("File info Error");
}}
function Rename_file_folder($path,$opath,$newname){
if(is_dir($path)){
if(is_writable($path)){
if(is_dir($opath.$newname)){ exit("Sorry Dir is exists");}
echo rename($path,$opath.$newname)?'Rename Success':'Rename Fail Error';
}else{
echo('Can\'t Rename dir not is_writable');
}
}else{
if(file_exists($path) && is_writable($path)){
if(file_exists($opath.$newname)){ exit("file exists"); }
echo rename($path,$opath.$newname)?'Rename success ':'Rename fail';
}else{
echo "file can't is_writable";
}
}
}
上一篇