라이브러리

[PHP] DirectoryIterator::__construct - 경로에서 새 디렉토리 반복자를 구성합니다.




DirectoryIterator::__construct

PHP의 `DirectoryIterator` 클래스는 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리할 수 있는 Iterator 인터페이스를 구현한 클래스입니다. `DirectoryIterator` 클래스의 생성자는 디렉터리 경로를 인수로 받아 디렉터리 내의 정보를 읽어옵니다.

생성자 인수


`DirectoryIterator` 클래스의 생성자는 디렉터리 경로를 인수로 받아 디렉터리 내의 정보를 읽어옵니다. 디렉터리 경로는 문자열로 전달되어야 하며, 디렉터리 경로가 존재하지 않으면 `Exception` 예외가 발생합니다.

예제


#hostingforum.kr
php

// 디렉터리 경로를 지정합니다.

$directoryPath = '/path/to/directory';



// 디렉터리 경로를 인수로 전달하여 디렉터리 내의 정보를 읽어옵니다.

$iterator = new DirectoryIterator($directoryPath);



// 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리합니다.

foreach ($iterator as $fileInfo) {

    // 파일 정보를 출력합니다.

    echo $fileInfo->getFilename() . "
";

    echo $fileInfo->getPath() . "
";

    echo $fileInfo->isDir() ? '디렉터리' : '파일' . "
";

}



디렉터리 내의 정보 읽기


`DirectoryIterator` 클래스의 생성자는 디렉터리 내의 정보를 읽어오기 때문에, 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리할 수 있습니다. `DirectoryIterator` 클래스의 메서드 중에는 `getFilename()`, `getPath()`, `isDir()` 등이 있습니다.

* `getFilename()`: 파일 이름을 반환합니다.
* `getPath()`: 파일 경로를 반환합니다.
* `isDir()`: 파일이 디렉터리인지 여부를 반환합니다.

예제 (디렉터리 내의 정보 읽기)


#hostingforum.kr
php

// 디렉터리 경로를 지정합니다.

$directoryPath = '/path/to/directory';



// 디렉터리 경로를 인수로 전달하여 디렉터리 내의 정보를 읽어옵니다.

$iterator = new DirectoryIterator($directoryPath);



// 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리합니다.

foreach ($iterator as $fileInfo) {

    // 파일 이름을 출력합니다.

    echo $fileInfo->getFilename() . "
";

    

    // 파일 경로를 출력합니다.

    echo $fileInfo->getPath() . "
";

    

    // 파일이 디렉터리인지 여부를 출력합니다.

    echo $fileInfo->isDir() ? '디렉터리' : '파일' . "
";

}



디렉터리 내의 파일과 서브 디렉터리 처리


`DirectoryIterator` 클래스의 생성자는 디렉터리 내의 정보를 읽어오기 때문에, 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리할 수 있습니다. `DirectoryIterator` 클래스의 메서드 중에는 `hasNext()`와 `current()`가 있습니다.

* `hasNext()`: 다음 항목이 있는지 여부를 반환합니다.
* `current()`: 현재 항목을 반환합니다.

예제 (디렉터리 내의 파일과 서브 디렉터리 처리)


#hostingforum.kr
php

// 디렉터리 경로를 지정합니다.

$directoryPath = '/path/to/directory';



// 디렉터리 경로를 인수로 전달하여 디렉터리 내의 정보를 읽어옵니다.

$iterator = new DirectoryIterator($directoryPath);



// 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리합니다.

while ($iterator->hasNext()) {

    // 현재 항목을 출력합니다.

    echo $iterator->current()->getFilename() . "
";

    

    // 다음 항목으로 이동합니다.

    $iterator->next();

}



디렉터리 내의 정보 삭제


`DirectoryIterator` 클래스의 생성자는 디렉터리 내의 정보를 읽어오기 때문에, 디렉터리 내의 파일과 서브 디렉터리를 삭제할 수 있습니다. `DirectoryIterator` 클래스의 메서드 중에는 `unlink()`와 `rmdir()`가 있습니다.

* `unlink()`: 파일을 삭제합니다.
* `rmdir()`: 디렉터리를 삭제합니다.

예제 (디렉터리 내의 정보 삭제)


#hostingforum.kr
php

// 디렉터리 경로를 지정합니다.

$directoryPath = '/path/to/directory';



// 디렉터리 경로를 인수로 전달하여 디렉터리 내의 정보를 읽어옵니다.

$iterator = new DirectoryIterator($directoryPath);



// 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리합니다.

foreach ($iterator as $fileInfo) {

    // 파일이 디렉터리인지 여부를 확인합니다.

    if ($fileInfo->isDir()) {

        // 디렉터리를 삭제합니다.

        rmdir($fileInfo->getPathname());

    } else {

        // 파일을 삭제합니다.

        unlink($fileInfo->getPathname());

    }

}



디렉터리 내의 정보 복사


`DirectoryIterator` 클래스의 생성자는 디렉터리 내의 정보를 읽어오기 때문에, 디렉터리 내의 파일과 서브 디렉터리를 복사할 수 있습니다. `DirectoryIterator` 클래스의 메서드 중에는 `copy()`와 `mkdir()`가 있습니다.

* `copy()`: 파일을 복사합니다.
* `mkdir()`: 디렉터리를 생성합니다.

예제 (디렉터리 내의 정보 복사)


#hostingforum.kr
php

// 디렉터리 경로를 지정합니다.

$sourceDirectoryPath = '/path/to/source/directory';

$targetDirectoryPath = '/path/to/target/directory';



// 디렉터리 경로를 인수로 전달하여 디렉터리 내의 정보를 읽어옵니다.

$iterator = new DirectoryIterator($sourceDirectoryPath);



// 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리합니다.

foreach ($iterator as $fileInfo) {

    // 파일이 디렉터리인지 여부를 확인합니다.

    if ($fileInfo->isDir()) {

        // 디렉터리를 복사합니다.

        mkdir($targetDirectoryPath . '/' . $fileInfo->getFilename());

    } else {

        // 파일을 복사합니다.

        copy($fileInfo->getPathname(), $targetDirectoryPath . '/' . $fileInfo->getFilename());

    }

}



디렉터리 내의 정보 이동


`DirectoryIterator` 클래스의 생성자는 디렉터리 내의 정보를 읽어오기 때문에, 디렉터리 내의 파일과 서브 디렉터리를 이동할 수 있습니다. `DirectoryIterator` 클래스의 메서드 중에는 `rename()`가 있습니다.

* `rename()`: 파일 또는 디렉터리를 이름을 변경합니다.

예제 (디렉터리 내의 정보 이동)


#hostingforum.kr
php

// 디렉터리 경로를 지정합니다.

$sourceDirectoryPath = '/path/to/source/directory';

$targetDirectoryPath = '/path/to/target/directory';



// 디렉터리 경로를 인수로 전달하여 디렉터리 내의 정보를 읽어옵니다.

$iterator = new DirectoryIterator($sourceDirectoryPath);



// 디렉터리 내의 파일과 서브 디렉터리를 반복적으로 처리합니다.

foreach ($iterator as $fileInfo) {

    // 파일이 디렉터리인지 여부를 확인합니다.

    if ($fileInfo->isDir()) {

        // 디렉터리를 이름을 변경합니다.

        rename($fileInfo->getPathname(), $targetDirectoryPath . '/' . $fileInfo->getFilename());

    } else {

        // 파일을 이름을 변경합니다.

        rename($fileInfo->getPathname(), $targetDirectoryPath . '/' . $fileInfo->getFilename());

    }

}


  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 620 페이지

검색

게시물 검색