[オリジナル] php+ajax で模擬 Win ファイル管理システムを実装
//
このチュートリアルはこのサイトからのオリジナルです。転載する場合は出典を明記してください
作者: www.drise.cn
メール:drise@163.com
QQ:271728967
//
これはdeldir()関数です。この関数の機能はファイルを削除することです
。関数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);//ファイルを削除
}その他{
deldir($rd);//再帰
}
}
rmdir($rdir);//空のディレクトリを削除します
}その他{
false を返す;
}
}
true を返します;
}
この関数は、ディレクトリとファイルを削除するために再帰的アルゴリズムも使用します
以下は filename() 関数です。この関数の機能はファイルの名前を変更することです
。関数ファイル名($path,$nname){
// 古いファイル名を取得します
if($path == "" || substr($path,-1) ==="/" || strlen($path)>255){
exit('不正な操作!');
}その他{
$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)){ //フォルダー名を一致させます
ファイルフォルダーの名前を変更($path,$opath,$nname);
}その他{
echo("ファイル情報エラー");
}}
関数 Rename_file_folder($path,$opath,$newname){
if(is_dir($path)){
if(is_writable($path)){
if(is_dir($opath.$newname)){ exit("申し訳ありませんが、ディレクトリは存在します");}
echo rename($path,$opath.$newname)?'名前変更成功':'名前変更失敗エラー';
}その他{
Echo('is_writable ではないディレクトリの名前を変更できません');
}
}その他{
if(file_exists($path) && is_writable($path)){
If(file_exists($opath.$newname)){ exit("ファイルが存在します");
echo rename($path,$opath.$newname)?'名前変更成功 ':'名前変更失敗';
}その他{
echo "ファイルは書き込み可能ではありません";
}
}
前の投稿