어디선가 찾아서 쓰고 있는 함수들입니다.
cms의 common라이브러리에 넣어두고 쓰고있는 것들이지요.
/**
* 하뒤 디렉토리 파일까지 퍼미션 지정
*
* @param String $path : 디렉토리
* @param int $filemode : 퍼미션 값
*/
function chmodr($path, $filemode) {
$CI =& get_instance();
if (!is_dir($path))
return chmod($path, $filemode);
$dh = opendir($path);
while (($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..') {
$fullpath = $path.'/'.$file;
if(is_link($fullpath))
return FALSE;
elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode))
return FALSE;
elseif(!$CI->common->chmodr($fullpath, $filemode))
return FALSE;
}
}
closedir($dh);
if(chmod($path, $filemode))
return TRUE;
else
return FALSE;
}
/**
* 디렉토리 삭제
* @param String $dir : 삭제할 디렉토리
* @return Boolean
*/
function deleteDirectory($dir) {
if (!file_exists($dir)) return true;
if (!is_dir($dir) || is_link($dir)) return unlink($dir);
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!$this->deleteDirectory($dir . "/" . $item)) {
chmod($dir . "/" . $item, 0777);
if (!$this->deleteDirectory($dir . "/" . $item)) return false;
};
}
return rmdir($dir);
}
/**
* 디렉토리 통체로 복사하여 하위 디렉토리까지 복사.
*
* @param String $src : 복사 할 디렉토리.
* @param String $dst : 복사 될 디렉토리.
*/
function recurseCopy($src, $dst) {
$dir = opendir($src);
@ mkdir($dst);
while (false !== ($file = readdir($dir))) {
if (($file != '.') && ($file != '..')) {
if (is_dir($src . '/' . $file)) {
$this->recurseCopy($src . '/' . $file, $dst . '/' . $file);
} else {
copy($src . '/' . $file, $dst . '/' . $file);
}
}
}
closedir($dir);
}
|
저도 CI에 대해 양승현님 처럼 많은분들에게 도움을 드릴날을 손꼽아 기다리고 있습니다.
부지런히 포럼에 많이 오고 보고 배우겠습니다.^^