php 지정 한 폴 더 의 인 스 턴 스 설명 삭제
대상:php 지정 한 디 렉 터 리 삭제
사용 하 는 php 함수:isdir,opendir,readdir,scandir,rmdir,closed ir 등(주:다른 파일 작업 함수 도 완성 할 수 있 습 니 다.여 기 는 이번 함수 만 열거 되 어 있 습 니 다)
2.관련 함수 소개
php 파일 을 조작 하 는 방법 은 대체적으로 같 습 니 다.이미 전편 에서 소 개 했 습 니 다.여 기 는 중복 소개 가 아 닙 니 다.여기 서 새로운 함 수 를 소개 합 니 다.
rmdir
자세 한 내용 참고:http://www.w3school.com.cn/php/func_filesystem_rmdir.asp
3.코드 구성
**
* [delAllFile description]
* @param [type] $dirName [description]
* @param [type] $file [description]
* @param integer $type [description] ,
* @return [type] [description]
*/
public function delAllFile($dirName, $file, $type = 1) {
$re = $this->checkDir($dirName);
//
if($type){
$file = fopen($file, 'w');//
}
if($re){
$this->delFile($dirName, $file);
}else{
fwrite($file,"{$dirName} \r
");
}
}
/**
* [checkDir description] ,
* @param [type] $dirName [description]
* @return [type] [description]
*/
private function checkDir($dirName) {
$a = scandir($dirName);// images :
// . ..
if(sizeof($a) == 2){
rmdir($dirName);
return false;
}
return true;
}
/**
* [delFile description]
* @param [type] $dirName [description]
* @param [type] $file [description]
* @return [type] [description]
*/
private function delFile($dirName, $file) {
$dh = openDir($dirName);
while($handle = readdir($dh)){
if($handle == '.' || $handle == '..') {
continue;
}
$resource = $dirName.'/'.$handle;
//
if(is_dir($resource)) {
//
$re = $this->checkDir($dirName);
if($re){
$this->delAllFile($resource, $file, 0);
}else{
fwrite($file,"{$resource} \r
");
continue;
}
}else{
unlink($resource);
}
}
// ,
closedir($dh);//
fwrite($file,"{$dirName} \r
");
rmdir($dirName);//
}
그러나 위의 코드 가 하위 디 렉 터 리 의 등급 이 높 을 때 경고 가 나타 나 디 렉 터 리 를 삭제 할 수 없습니다.따라서 등급 이 높 은 부분 집합 에 대해 마지막 에 순환 판단 을 추가 하여 삭제 할 수 있 는 지 여 부 를 판단 하여 이 오 류 를 피해 야 한다.
// // ,
// closedir($dh);//
// fwrite($file,"{$dirName} \r
");
//rmdir($dirName);//
// ,
$i = 1;
while($i){
$re = $this->checkDir($dirName);
echo "$dirName $i <br/><hr/>";
$i++;
if(!$re){
$i = 0;
closedir($dh);//
fwrite($file,"{$dirName} \r
");
}
}
게다가 이 층 은 삭제 할 수 없 는 상황 을 피 할 수 있 습 니 다.4.결어
디 렉 터 리 를 삭제 하 는 것 은 상대 적 으로 간단 합 니 다.기본 절 차 는 다음 과 같 습 니 다.
1.디 렉 터 리 인지 여 부 를 판단 하고 디 렉 터 리 는 자신 을 재 귀적 으로 호출 합 니 다.그렇지 않 으 면 파일 을 직접 삭제 합 니 다.
2.디 렉 터 리 가 비어 있 는 지 판단 하고 빈 rmdir 가 아 닌 경우 오류 가 발생 합 니 다.
3.파일 권한 의 문제(window,이것 은 문제 가 아 닙 니 다)
이 phop 에서 지정 한 폴 더 를 삭제 하 는 인 스 턴 스 설명 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 고 많은 응원 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.