-
-
/** - * ディレクトリ生成クラス: UtilsMakeDir
- * @author yepeng
- * @since 2010.3.18
- */
- class UtilsMakeDir{
- //Base Directory このディレクトリは、ディレクトリの作成時に作成されません。これは既存のディレクトリである必要があります
- private static $makeBasePath = 'video';
- private static $delBasePath = 'video';
/**
- * ディレクトリを再帰的に作成します。
- * 作成が成功した場合はフルパスを返します。
- * 作成が失敗した場合は false を返します
- * @param String $pathString '2/3/4/5' などのパス文字列
- * @ false または文字列を返します p>
パブリック静的関数 makeDir($pathString){
- $pathArray =explode('/',$pathString);
- if(empty($pathArray[0])){
- return false;
- }
- $path = array_shift($pathArray);
- self::$basePath = self::$basePath.'/'.$path;
- if(is_dir(self::$basePath)){
- $ path = implode('/ ',$pathArray);
- self::makeDir($path);
- }
- else{
- @mkdir(self::$basePath,0777);
- $path = implode('/', $pathArray);
- self ::makeDir($path);
- }
- if(is_dir(self::$basePath)){
- return self::$basePath;
- }
- else{
- return false;
- }
- }*/
- /**
- * ベースディレクトリを含むディレクトリを作成します。たとえば、画像を video の下に配置する場合 (video は既存のディレクトリです)、渡すパラメータは video/2/3/4 である必要があります。成功するとフルパスが返されます。
- * Create Failure は false を返します
- * @param String $pathString 'video/2/3/4/5' などのパス文字列
- * @return false または string
- **/
- パブリック静的関数 makeDir($pathString){
- $pathArray =explode('/',$pathString);
- $tmpPath = array_shift($pathArray);
- foreach ($pathArray as $val){
- $ tmpPath .= "/".$val;
- if(is_dir($tmpPath)){
- Continue;
- }
- else {
- @mkdir($tmpPath,0777);
- }
- }
- if(is_dir($tmpPath) ) {
- return $tmpPath;
- }
- else{
- return false;
- }
- } /**
- * 再帰的削除
- * ディレクトリとファイルを削除します
- * 'video/2/3/4' のようなパスを渡すと、4 より下のすべてのディレクトリとファイルが削除されます
- * @param string $stringPath
- */
- public static function delDir($stringPath){
- if(!$handle = @opendir($stringPath ) ){
- return false;
- }
- while (false !==($file = readdir($handle))){
- if($file !='.' && $file != '..'){
- $ tmpdir = $stringPath."/".$file;
- if(is_dir($tmpdir)){
- self::delDir($tmpdir);
- rmdir($tmpdir);
- }
- if(is_file($tmpdir) ) {
- unlink($tmpdir);
- }
- }
- }
- closedir($handle);
- }}
- ?>
-
-
コードをコピー
winxpでのループと再帰PHP ファイルが gb2312 としてエンコードされており、ファイル名が任意である限り、ファイル名は gb2312 に変更される必要があります。
|