ホームページ  >  記事  >  バックエンド開発  >  PHPでフォルダーとファイルを移動する

PHPでフォルダーとファイルを移動する

WBOY
WBOYオリジナル
2016-08-08 09:23:063042ブラウズ
方法 1、コピー + リンク解除方法 私のアイデアは、移動 = 新規 + 削除です。移動する前に、移動先のディレクトリに新しいフォルダーを作成し、そこにファイルとディレクトリをコピーします1. ファイルの場合、名前変更は異なるドライブ文字間を移動できます。2. 空のフォルダーの場合、名前変更は異なるドライブ文字間を移動することもできます。
コードは次のとおりです コードをコピーします

/**。 &* /
function moveDir($from,$to){
if(!is_dir($from)){//$from ソース ファイル ディレクトリが存在するかどうかを判断します
return false;
}

$from = rtrim(str_replace (' //','/',$from), '/');//Windows では両方のシンボルが受け入れられるため、Linux との互換性を保つために、すべての / シンボルを / に変換します。 $ from);//ソース ファイル ディレクトリ内のファイルとフォルダーを一覧表示し、配列形式で $files に保存します。

/*

$files の出力:

Array ( [0] => . [1] => .. [2] => a [3] => b [4] => ; c [5] => dir.php [7] => dir2.php [10] => .php )

scandir 関数が 2 つの冗長な値を出力することがわかります: [0] => .. ここで if を記述しても役に立ちません。

*/

foreach($files as $file){//$files 配列を走査して、配列内のフォルダーとファイルのコピーと削除を容易にします。

if(in_array($file, array('.', '..' ))){// array('.','..') は . と .. のみを含む新しい配列を作成し、 $file を検索して .. の 2 つの値があるかどうかを確認します。 ;

}
$subFrom = $from.'/'.$file;//トラバースしたフォルダーまたはファイル名を新しいパスに変換します
$subTo = $to.'/'.$file;

if(is_dir( $subFrom)){
@mkdir($subTo); // $subFrom がディレクトリであるかどうかを判断し、ディレクトリの場合は、ターゲット ディレクトリの下に新しいディレクトリを作成します
moveDir($subFrom, $subTo); //新しいディレクトリを実行します。
}else{//ファイルを直接コピーします。
copy($subFrom, $subTo);

unlink($subFrom);// すべてのファイルを削除します

}
@ rmdir($ subFrom);//すべてのディレクトリを削除します
}
return true;
}
moveDir('C:/Users/Administrator/Desktop/0704′,'e:');//移動したいファイルを渡しますここまたはディレクトリアドレス





方法 2、名前変更

3. 空でないフォルダーの場合は、同じドライブ文字の下にのみ移動できます。 このコードは、ほとんどすべてのアプリケーションの状況に対応できるはずです。は次のとおりですコードをコピーします rename("D:/testdir/test","F:/totestdir/mydir");?>


40M ファイルの場合、copy+unlink メソッドには 7.6249899864197 秒かかりますが、rename メソッドには 0.024738788604736 しかかかりません。これは 300 倍高速です

//ファイル名を保存する変数を定義します$file = "html/cache.txt";$rename = "html/renameCache.txt";//rename() 関数を使用してファイルの名前を変更します echo "ファイル名の変更に成功しました!";echo "ファイル名の変更に失敗しました!";}//rename() 関数を使用してファイルを移動し、Rename
if(rename ($file,$rename)==TRUE){}else{
rename("html/renameCache.txt"," html/a/2.txt");

//rename() 関数を使用してディレクトリの名前を変更します
rename("html","cache");
//rename() 関数を使用して、ディレクトリをターゲットに移動しますディレクトリ
rename("b","cache/b");
?>





上記は、PHP モバイルのフォルダーとファイルを内容も含めて紹介したもので、PHP チュートリアルに興味のある友人に役立つことを願っています。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。