
ssh2_sftp_rmdir 함수는 디렉토리를 삭제하기 전에 디렉토리 내의 모든 파일을 삭제하지 않습니다. 따라서 디렉토리 내에 파일이 있는 경우 삭제가 실패하는 것을 관찰할 수 있습니다.
디렉토리 내의 파일을 이전하는 방법은 다음과 같습니다.
1. ssh2_sftp_readdir 함수를 사용하여 디렉토리 내의 파일 목록을 가져옵니다.
2. ssh2_sftp_get 함수를 사용하여 디렉토리 내의 파일을 로컬로 복사합니다.
3. ssh2_sftp_rmdir 함수를 사용하여 디렉토리를 삭제합니다.
디렉토리 내의 파일을 삭제하기 전에 백업하는 방법은 다음과 같습니다.
1. ssh2_sftp_readdir 함수를 사용하여 디렉토리 내의 파일 목록을 가져옵니다.
2. ssh2_sftp_get 함수를 사용하여 디렉토리 내의 파일을 로컬로 복사합니다.
3. ssh2_sftp_rmdir 함수를 사용하여 디렉토리를 삭제합니다.
4. 로컬로 복사한 파일을 원래 위치로 복원합니다.
예제 코드는 다음과 같습니다.
#hostingforum.kr
php
$sftp = ssh2_sftp('example.com');
$dir = '/path/to/directory';
// 디렉토리 내의 파일 목록 가져오기
$files = ssh2_sftp_readdir($sftp, $dir);
// 디렉토리 내의 파일을 로컬로 복사하기
foreach ($files as $file) {
$local_path = '/path/to/local/directory/' . $file;
$remote_path = $dir . '/' . $file;
ssh2_sftp_get($sftp, $local_path, $remote_path, SSH2_SFTP_STREAM_ALL);
}
// 디렉토리를 삭제하기
ssh2_sftp_rmdir($sftp, $dir);
// 로컬로 복사한 파일을 원래 위치로 복원하기
foreach ($files as $file) {
$local_path = '/path/to/local/directory/' . $file;
$remote_path = $dir . '/' . $file;
ssh2_sftp_put($sftp, $remote_path, $local_path, SSH2_SFTP_STREAM_ALL);
}
이 예제 코드는 디렉토리 내의 파일을 로컬로 복사하고, 디렉토리를 삭제하고, 로컬로 복사한 파일을 원래 위치로 복원하는 과정을 보여줍니다.
2025-05-09 11:22