
ssh2_sftp_rmdir 함수는 디렉토리가 비어있을 때만 삭제가 가능합니다. 디렉토리가 비어있지 않으면 삭제가 안되는 것은 함수의 기본 동작입니다.
디렉토리가 비어있지 않아도 삭제가 되는 방법은 ssh2_sftp_rmdir 함수를 사용하는 대신, ssh2_sftp_rmdir 함수가 삭제할 수 있는 디렉토리의 내용을 모두 삭제한 후에 디렉토리 자체를 삭제하는 것입니다.
예를 들어, 디렉토리가 비어있지 않아도 ssh2_sftp_rmdir 함수를 사용하여 삭제하는 코드는 다음과 같습니다.
#hostingforum.kr
php
$sftp = ssh2_sftp('호스트명');
$디렉토리 = '/경로/디렉토리명';
// 디렉토리 내용 삭제
foreach (ssh2_sftp_scandir($sftp, $디렉토리) as $파일) {
if ($파일 != '.' && $파일 != '..') {
ssh2_sftp_unlink($sftp, $디렉토리 . '/' . $파일);
}
}
// 디렉토리 삭제
ssh2_sftp_rmdir($sftp, $디렉토리);
이 코드는 디렉토리 내용을 모두 삭제한 후에 디렉토리 자체를 삭제합니다.
2025-07-23 01:45