파일 말고 폴더(경로)를 입력할 경우 폴더 자체가 삭제되나요?
아니면 폴더가 아니라서 그냥 패스되는 지 궁금합니다...
현재 파일 삭제시 특정 위치에 저장된 폴더 자체를 날려버릴려고 합니다..ㅇㅅㅇ;;;
참고로 라이믹스입니다.
파일 말고 폴더(경로)를 입력할 경우 폴더 자체가 삭제되나요?
아니면 폴더가 아니라서 그냥 패스되는 지 궁금합니다...
현재 파일 삭제시 특정 위치에 저장된 폴더 자체를 날려버릴려고 합니다..ㅇㅅㅇ;;;
참고로 라이믹스입니다.
원래 files/attach/images/모듈번호/파일번호3/파일번호3/파일
이렇게 저장되잖아욥..?
지금 저는 파일 업로드시 자동으로 썸네일 생성하게 하려고
files/attach/images/모듈번호/파일번호뒷3/파일번호앞3/파일
files/attach/images/모듈번호/파일번호뒷3/파일번호앞3/파일썸네일폴더/썸네일이미지들
이렇게 되어 있거든요..
그래서 파일삭제할 때 file 모듈 컨트롤러에서
deleteFile 함수 중 FileHandler::removeFile($uploaded_filename); 이 함수 다음에
/* test delete*/
if(preg_match('/(.+)test\.(jpg|jpeg|png)$/',$uploaded_filename,$m))
{
$thumbnail= $m[1].'thumbnails/';
$log = $m[1].'log.txt';
FileHandler::removeDir($thumbnail);
FileHandler::removeFile($log);
}
이렇게 해놨거든요
일단 디버그 찍어 보니까
정상적으로 thumbnail 폴더로 되는 걸 확인했는데,
삭제되는 결과물을 보니까
files/attach/images/모듈번호/파일번호뒷3/파일번호앞3/ 여기서 파일번호앞3도 같이 삭제되더라구요.ㅎㅎ
그래서 이전에 이슈 등록한게 적용된 건가 해서요...!
어 음 일단 파일 하나 남겨서 파일이 있는 데도 삭제되는지 확인해보고 댓글 달게요.
removeFile()은 이름 그대로 파일만 삭제합니다. 폴더 삭제는 removeDir()입니다. 단, 폴더 내에 파일이 너무 많으면 한번에 삭제되지 않고 타임아웃에 걸릴 수도 있으니 주의하세요.
라이믹스에서는 Rhymix\Framework\Storage 클래스를 직접 호출하셔도 됩니다. FileHandler를 사용해도 내부적으로 모두 라이믹스 프레임워크로 연결되거든요. 물론 XE와 호환되어야 한다면 FileHandler를 쓰시고요.