생활코딩

Coding Everybody

디렉토리 제어

토픽 생활코딩 > 언어 > PHP

현재 디렉토리와 디렉토리의 변경

getcwd는 현재 디렉토리를 통해서 현재 디렉토리를 알 수 있고, chdir을 이용해서 디렉토리를 변경 할 수 있다.

<?php
echo getcwd().'<br />';
chdir('../');
echo getcwd().'<br />';
?>

디렉토리의 탐색

scandir은 디렉토리를 탐색하는 기능이다. 첫번째 인자는 탐색할 디렉토리의 경로이고, 두번째 인자는 정렬 방법이다.

아래 예제는 현재 디렉토리를 탐색하는 방법과 탐색된 결과의 정렬 방법을 바꾸는 법에 대한 예제다.

<?php
$dir    = './';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

디렉토리의 생성

mkdir은 디렉토리를 생성하는 내장함수다. 첫번째 인자로 디렉토리의 이름, 두번째 인자로 디렉토리의 권한을 지정 할 수 있다. 세번째 인자의 값으로 true를 지정하면 첫번째 인자로 주어진 경로가 여러개의 디렉토리로 이루어져 있을 때 해당 디렉토리를 한번에 생성하는 기능을 제공한다.

<?php
mkdir("1/2/3/4", 0700, true);
?>

댓글

댓글 본문
  1. 드림보이
    2022.01.19. 파일 - 디렉토리 제어 파트 수강완료
  2. ggyuker
    22.01.03 수강완료
  3. jeisyoon
    2021.07.27 Directory Control - OK
  4. 감사합니다
  5. choon
    감사합니다.
  6. 홍콩돼지
    반복문을 돌리면 되지 않을까욤~
    대화보기
    • 말봉
      mkdir("zzz1", 0700, true);
      mkdir("zzz2", 0700, true);
      mkdir("zzz3", 0700, true);
      디렉토리를 여러개 하려면 어케 해야하나요 ??
      위와 같이 해야하나요 ?
    • 김민수
      scandir 는 리눅스로 따지면 dir -a 와 같은 명령어 입니다. 상위(상위가 존재하는 경우 ../ 으로 표시함) 현재(./) 내용 으로 표시를 하고 해당 내용은 순서대로 표시가 됩니다. 따라서 위 순서대로면 .. , . ,하위폴더 로 표시가 되는거죠 리눅스를 먼저 배우고 오시면 좀 더 이해가 쉽습니다.(이미 외운 내용을 내장함수만 달라졌다고 이해하면 되니까요 ㅋㅋ)
      대화보기
      • HongJu Shin
        scandir()을 했을 때 왜 array index 0 과 1번에 . 과 .. 이 왜 들어가는지 궁금합니다.
      • 다시시작
        완료
      • 고스트프리
        잘 봤습니다. 새로운 세상에 왔어요^^
      • kimjs9105
        맨날 불러오기만 했는데 폴더를 만드는 개념이 신기하네요!!! 감사합니다~~~~~~
      • sheis
        잘 봤어요^^
      • 심화평
        감사합니다`~`
      • 김세창
        감사합니다~
      • NamJin Kim
        감사합니다 항상
      • 신입1
        감사합니다
      • JustStudy
        고맙습니다
      • Beluga
        Read 권한 : 4
        Write 권한 : 2
        Execute 권한 : 1

        이렇게 번호기 미리 정해져 있구요
        읽기, 쓰기, 실행 모두 가능한 permission의 경우 4+2+1 = 7 이 주어집니다.
        읽기와 실행만 가능하다면 4+1 = 5 가 주어지겠죠.
        소유자에게 7이 주어졌고
        소유자와 같은 Group멤버에게는 0
        아무것도 아닌 other 에게도 0이 주어졌으니 아무 권한이 없게 되겠네요.

        첫번째 0이 뭔지느 모르겠네요 ^^

        참고로 디렉토리의 경우 (파일과는 다르게) "실행"권한은 "디렉토리 내부로 들어갈 수 있는 권한"을 의미합니다.
        대화보기
        • 노마드
          필기는 오너라고 하시고 말씀을 햇갈리신듯 하네요 ㅋ 아 그리고 저도 궁금한게 있는데, 혹시 7이 이진법 111로 각각 wrx 의 의미인가요? 리눅스 공부하면서 이진법 쓰는걸 어디서 본듯해서요,
          대화보기
          • 노마드
            저도 이제 공부하는 사람이긴 하지만, 리눅스에서는 디렉토리를 슬래쉬(/)로 써야하고, 역슬래쉬는 주로 특수문자앞에 붙여서 특수문자를 그대로 출력해주는 기능인거 같네요, 윈도에서는 원래는 반대로 디렉토리를 역슬래쉬로 썼었는데, 방금 검색해보니, xp 이상에서는 슬래시도 디렉토리에 사용가능하다고 하네요, 정리하면 리눅스는 두개 용도가 다르고, 윈도는 혼용이 가능한거 같습니다
            대화보기
            • cham
              파일명 슬래시(/)랑 백슬래시(\) 상관 없나요?
            • 얼그레이티
              늘 감사합니다^^!!
              그런데 9:10 이부분에서 말씀하신 권한 0700중 7 부분을 group의 사용자에게 모든 권한을 주신다고 하셨는데요
              owner를 잘 못 말씀 하신게 아닌가 싶어 글을 남깁니다.
              혹시 제가 잘 못 알고있는건지... 궁금합니다.
            • 코딩!
              디렉토리 제어!!
            • 육점이
              항상 감사합니다.
            • 별모모
              파일 제어, 디렉토리의 생성을 통해 PHP함수를 어떻게 사용하는지 보았습니다. 절벽과 절벽 사이에, 다리가 한 칸 씩 놓여지는 것 같습니다. 고맙습니다.