예제 #1
0
function full_rmdir($dir)
{
    if (!is_writable($dir)) {
        if (!@chmod($dir, WT_PERM_EXE)) {
            return false;
        }
    }
    $d = dir($dir);
    while (false !== ($entry = $d->read())) {
        if ($entry == '.' || $entry == '..') {
            continue;
        }
        $entry = $dir . '/' . $entry;
        if (is_dir($entry)) {
            if (!full_rmdir($entry)) {
                return false;
            }
            continue;
        }
        if (!@unlink($entry)) {
            $d->close();
            return false;
        }
    }
    $d->close();
    rmdir($dir);
    return TRUE;
}
예제 #2
0
파일: del_svn.php 프로젝트: chaobj001/tt
/**
 * 针对目录所有的删除
 * @param $dir 目录路径
 *
 */
function full_rmdir($dir)
{
    if (!is_writable($dir)) {
        if (!chmod($dir, 0777)) {
            return false;
        }
    }
    $dh = opendir($dir);
    while (FALSE !== ($entry = readdir($dh))) {
        if ($entry == '.' || $entry == '..') {
            continue;
        }
        $entry = $dir . '/' . $entry;
        if (is_dir($entry)) {
            if (!full_rmdir($entry)) {
                return false;
            }
            continue;
        }
        if (!@unlink($entry)) {
            //如果不能删除修改文件权限,再删除,如果不能修改文件权限报错!~
            if (!is_writable($entry)) {
                if (!chmod($entry, 0777)) {
                    echo 'not chmod!~';
                }
            }
            if (!unlink($entry)) {
                echo "##Error:file-" . $entry . " is not person";
            }
            echo "<br />DELETE -file:" . $entry;
            continue;
        }
    }
    //这里判断是否删除目录
    closedir($dh);
    if (rmdir($dir)) {
        echo "<br /><font color=red>" . $dir . "</font>";
        $entry = $dir;
    }
    return true;
}
예제 #3
0
 /**
  * Delete a directory
  *
  * @param string $name
  */
 public function removeDirectory($name)
 {
     return full_rmdir($this->fileRoot . $this->normalizePath($name));
 }
예제 #4
0
 /**
  * Borra recursivamente el contenido de un directorio
  *
  * @param [dirname]			ruta absoluta del directorio
  *
  * @return true or false
  */
 function full_rmdir($dirname)
 {
     if ($dirHandle = opendir($dirname)) {
         $old_cwd = getcwd();
         chdir($dirname);
         while ($file = readdir($dirHandle)) {
             if ($file == '.' || $file == '..') {
                 continue;
             }
             if (is_dir($file)) {
                 if (!full_rmdir($file)) {
                     return false;
                 }
             } else {
                 if (!unlink($file)) {
                     return false;
                 }
             }
         }
         closedir($dirHandle);
         chdir($old_cwd);
         if (!rmdir($dirname)) {
             return false;
         }
         return true;
     } else {
         return false;
     }
 }