라이브러리
[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());
}
}
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.