////////////////////////////////////////////////////////////////////////////
// 디렉토리 삭제하기
//
// 사용법 : directoryDelete('삭제할 디렉토리경로')
/////////////////////////////////////////////////////////////////////////////
function directoryDelete($dir)
{
if(substr($dir, -1)!='/') { $dir = $dir.'/'; }
else { $dir = $dir; }
if(is_dir($dir)) {
if ($dh = opendir($dir)) {
$i = 0;
while (($file = readdir($dh)) !== false)
{
if(($file!='.' && $file!='..') && (filetype($dir . $file)!='dir')) {
$filename[$i] = $file;
$i++;
}
}
closedir($dh);
}
for($ii = 0 ; $ii < $i ; $ii++)
{
if(!unlink($dir . $filename[$ii])){ echo "파일삭제실패"; exit; }
}
rmdir($dir);
} else {
return false;
}
}
문제점...
역시 디렉토리가 있다면 삭제되지 않는다(파일만 삭제됨)
또한 디렉토리가 있다면 자기자신의 디렉토리 또한 삭제되지 않는다.
해결법...
재귀호출을 이용해서 적용하면 될 것임(조만간 해결 해야겠음;;;)
// 디렉토리 삭제하기
//
// 사용법 : directoryDelete('삭제할 디렉토리경로')
/////////////////////////////////////////////////////////////////////////////
function directoryDelete($dir)
{
if(substr($dir, -1)!='/') { $dir = $dir.'/'; }
else { $dir = $dir; }
if(is_dir($dir)) {
if ($dh = opendir($dir)) {
$i = 0;
while (($file = readdir($dh)) !== false)
{
if(($file!='.' && $file!='..') && (filetype($dir . $file)!='dir')) {
$filename[$i] = $file;
$i++;
}
}
closedir($dh);
}
for($ii = 0 ; $ii < $i ; $ii++)
{
if(!unlink($dir . $filename[$ii])){ echo "파일삭제실패"; exit; }
}
rmdir($dir);
} else {
return false;
}
}
문제점...
역시 디렉토리가 있다면 삭제되지 않는다(파일만 삭제됨)
또한 디렉토리가 있다면 자기자신의 디렉토리 또한 삭제되지 않는다.
해결법...
재귀호출을 이용해서 적용하면 될 것임(조만간 해결 해야겠음;;;)
'프로그래밍 > PHP' 카테고리의 다른 글
| 재귀호출을 이용한 디렉토리 트리구조... (0) | 2006/07/13 |
|---|---|
| 디렉토리내의 모든 파일 일괄 삭제하기 (0) | 2006/07/10 |
| 디렉토리내의 모든파일을 다른 디렉토리로 옮기는 함수 (0) | 2006/07/10 |
| 디렉토리 만들기 함수 (0) | 2006/07/10 |
| 이미지 프린트하기 (0) | 2006/07/10 |
| 정규표현식 (0) | 2006/07/09 |



