
ZipArchive 클래스의 addEmptyDir 함수는 디렉토리 이름을 전달받아 zip파일에 디렉토리를 추가합니다. 그러나 디렉토리 내부의 내용이 비어있지 않으면 에러가 발생합니다.
이 문제를 해결하는 방법은 두 가지가 있습니다.
1. 디렉토리 내부의 내용을 삭제하는 방법입니다. 디렉토리 내부의 내용을 삭제한 후 addEmptyDir 함수를 사용하여 빈 디렉토리를 zip파일에 추가할 수 있습니다.
#hostingforum.kr
php
$dir = '디렉토리 이름';
$files = scandir($dir);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
unlink($dir . '/' . $file);
}
}
$zip->addEmptyDir($dir);
2. addEmptyDir 함수를 사용하는 다른 방법은 디렉토리 이름을 전달받아 zip파일에 디렉토리를 추가하는 대신, 디렉토리 내부의 파일 목록을 전달받아 zip파일에 디렉토리를 추가하는 것입니다.
#hostingforum.kr
php
$dir = '디렉토리 이름';
$files = scandir($dir);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
$zip->addFile($dir . '/' . $file, $dir . '/' . $file);
}
}
위의 코드는 디렉토리 내부의 모든 파일을 zip파일에 추가합니다.
이러한 방법 중 하나를 사용하여 디렉토리 내부의 내용을 확인하거나, 디렉토리를 비우는 방법을 사용할 수 있습니다.
2025-07-31 20:41