개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.31 20:40

ZipArchive::addEmptyDir 함수를 사용하여 빈 디렉토리 추가하기

목록
  • 오픈소스광신도 1일 전 2025.07.31 20:40
  • 6
    1
제가 ZipArchive 클래스의 addEmptyDir 함수를 사용하여 빈 디렉토리를 zip파일에 추가하려고 하는데, 다음과 같은 문제가 발생합니다.

addEmptyDir 함수에 디렉토리 이름을 전달하면, 해당 디렉토리가 zip파일에 추가되지만, 디렉토리 내부의 내용이 비어있지 않으면 에러가 발생합니다. 예를 들어, 디렉토리 내부에 빈 파일이 있으면 에러가 발생합니다.

addEmptyDir 함수가 디렉토리 내부의 내용을 확인하거나, 디렉토리를 비우는 방법이 있나요? 아니면, addEmptyDir 함수를 사용하는 다른 방법이 있나요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 40,834건 / 5 페이지

검색

게시물 검색