mkdir("mydir");
기본적으로 현재 경로에 mydir이라는 디렉터리를 생성합니다.
mkdir("parent/child", 0777, true);
매개변수 |
설명 |
---|---|
0777 |
권한 설정 (읽기/쓰기/실행 모두 허용) |
true |
중간 디렉터리까지 재귀적으로 생성 |
rmdir("mydir");
디렉터리가 비어 있어야 삭제됩니다.
내부에 파일이나 디렉터리가 있으면 삭제되지 않습니다.
function deleteDir($dir) {
if (!file_exists($dir)) return;
$items = scandir($dir);
foreach ($items as $item) {
if ($item == '.' || $item == '..') continue;
$path = $dir . DIRECTORY_SEPARATOR . $item;
if (is_dir($path)) {
deleteDir($path);
} else {
unlink($path);
}
}
rmdir($dir);
}
$handle = opendir("mydir");
디렉터리 핸들을 반환합니다.
$handle = opendir("mydir");
while (($file = readdir($handle)) !== false) {
echo $file . "<br>";
}
closedir($handle);
.: 현재 디렉터리
..: 상위 디렉터리
일반 파일이나 디렉터리 이름이 나열됨
closedir($handle);
열린 디렉터리 핸들을 닫습니다.
$files = scandir("mydir");
foreach ($files as $file) {
echo $file . "<br>";
}
반환값은 배열이며 정렬된 상태로 들어옵니다.
if (is_dir("mydir")) {
echo "디렉터리가 존재합니다.";
}
존재 여부 확인 시 file_exists()보다 is_dir()이 더 명확함
chmod("mydir", 0755);
Unix 계열에서만 작동
0755: 소유자에게는 읽기/쓰기/실행, 그룹과 다른 사용자에겐 읽기/실행 권한
rename("old_dir", "new_dir");
디렉터리 이름 변경 또는 다른 위치로 이동 가능
함수 |
설명 |
---|---|
basename($path) |
경로에서 파일/디렉터리 이름만 반환 |
dirname($path) |
상위 경로 반환 |
realpath($path) |
실제 전체 경로 반환 |
chdir($path) |
현재 작업 디렉터리 변경 |
getcwd() |
현재 작업 디렉터리 반환 |
echo basename("/var/www/html"); // html
echo dirname("/var/www/html"); // /var/www
echo getcwd(); // 현재 작업 디렉터리
$dir = "mydir";
if (!is_dir($dir)) {
if (!mkdir($dir, 0755, true)) {
die("디렉터리 생성 실패");
}
}
$path = "mydir";
if (is_dir($path)) {
$files = array_diff(scandir($path), array('.', '..'));
foreach ($files as $file) {
echo $file . "<br>";
}
}
작업 |
함수 |
---|---|
디렉터리 생성 |
mkdir() |
디렉터리 삭제 |
rmdir(), 사용자 정의 재귀 함수 |
디렉터리 열기 |
opendir() |
디렉터리 읽기 |
readdir(), scandir() |
디렉터리 닫기 |
closedir() |
디렉터리 존재 확인 |
is_dir() |
디렉터리 권한 변경 |
chmod() |
디렉터리 이름 변경/이동 |
rename() |
현재 디렉터리 변경/확인 |
chdir(), getcwd() |