Google Apps Script(GAS)에서 GoogleDrive의 지정된 폴더에서 파일 목록 가져오기

7164 단어 GoogleAppsScript

개요



Google Apps Script(이하 GAS)에서 GoogleDrive의 특정 폴더에 대한 파일 목록을 가져옵니다.
폴더 지정에는 フォルダIDフォルダ名 로 액세스하는 방법이 있습니다.

폴더 ID로 파일 목록 얻기



폴더 ID란?



폴더 ID는 GoogleDrive에서 해당 폴더를 볼 때 URL 부분에 표시되는 ID입니다.
https://drive.google.com/drive/u/0/folders/ 이하 부분



코드


DriveApp.getFolderById 에 폴더 ID를 지정하여 폴더를 가져옵니다.
가져온 폴더의 getFiles() 메서드에서 파일 목록을 가져옵니다.
DriveApp.getFolderById(folderID);

파일 정보는 이터레이터로 취득하는 형태가 되므로, hasNext() 로 파일의 존재를 확인하면서 next() 로 파일의 실태를 취득합니다.

파일 이름은 getName()로 구할 수 있습니다.
파일 ID를 취득하고 싶은 경우는 getId() 메소드를 이용합니다.
function myFunccton() {

  let folderID = "XXXXXXXXXX"
  let folder = DriveApp.getFolderById(folderID);
  let files = folder.getFiles();

  while(files.hasNext()) {
    file = files.next();
    console.log(`[${file.getName()}]${file.getId()}`);
  }

}

덧붙여서 문자열 부분을 백쿼트로 둘러싸 두면, ${} 를 이용해, 변수나 함수의 반환값을 문자 출력할 수가 있습니다.

결과



로그에 다음과 유사한 목록이 표시됩니다.
(ID 부분 숨기고 있습니다)



폴더 이름으로 파일 목록 얻기


DriveApp.getFoldersByName 를 사용하여 폴더 이름을 지정하여 폴더를 검색할 수도 있습니다.
GoogleDrive에 있는 모든 동일한 폴더 이름을 가져오는 형태이므로 반환값은 폴더 반복자입니다.
이번에는 지정한 폴더 이름이 GoogleDrive에 하나 밖에 없다고 결정한 전제로 이터레이터의 첫 번째 폴더를 취득하고 있습니다.
DriveApp.getFoldersByName(folderName);

코드



코드는 다음과 같습니다.
결과는 폴더 ID 지정의 경우와 동일하므로 생략합니다.
function myFunction() {

  let folderName = "SubFolder"

  // イテレータで取れるので1つ目を決め打ちで取得
  let folder = DriveApp.getFoldersByName(folderName).next();
  let files = folder.getFiles(); 

  while(files.hasNext()) {
    file = files.next();
    console.log(`[${file.getName()}]${file.getId()}`);
  }

}

주의점



GoogleDrive에 액세스하기 때문에 처음 실행할 때 액세스 승인을 받아야합니다.
조금 수수가 많기 때문에, 수속의 스쿠쇼를 붙여 둡니다.

사용 권한 확인





해당 Google 계정 선택





경고 대화상자



세부정보 클릭


자세한 내용이 표시되므로 (安全ではないページ)に移動

액세스 요청 대화 상자



권한을 누르십시오.


이상의 수속을 끝낸 뒤 다시 실행하면, 보통으로 실행할 수 있게 됩니다.

참고 정보



■ Google 공식 DriveApp Api 참조
ぇぺぺrs. 오, ぇ. 코 m / 아 ps-sc 리 pt / 레후 렌세 / d 리 ゔ ぇ / d 리 ゔ ぇ 아 p

■ Google Apps Script로 Google 드라이브를 사용하는 가장 간단한 스크립트
htps : //가 되어-t. 이 m/가 s-오 g-d 리ゔぇ-아 p/

좋은 웹페이지 즐겨찾기