구글드라이브에 너무 많은 파일을 넣어놓다보니
나름 폴더 정리를 한다고 생각했는데도 찾기가 힘들때가 상당히 자주 있습니다.
그래서 구글드라이브의 파일 리스트를 만들 필요성을 느꼈는데요
개인적으로도 잘 사용하고 있지만 특히 회사에서 공유드라이브의 파일 목록을
매일 새벽에 업데이트 하도록 트리거를 걸어놓아서 매우 잘 사용하고 있습니다.

아래 스크립트를 이용하시면 될 것 같습니다.
두개의 function을 이용하고 있고
특정 폴더 아래의 파일 리스트를 추출하고자 하시는 경우
9행의 getFileList의 파라미터를
폴더명, folderID, 0 으로 입력해 주시면 됩니다.

혹시 질문 있으시다면 댓글로 달아 주시면 친절히 답해 드리겠습니다.

var maxlevel = 0;
var filelist = [];

function fileList() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName('FileList');
  sh.clear();
  var root = DriveApp.getRootFolder().getId();
  getFileList('root', root, 0);
  sh.getRange(1, 1).setHorizontalAlignment('center');
  
  sh.getRange(1, 1).setValue('Folder');
  sh.getRange(1, 2).setValue('FileName');
  sh.getRange(1, 3).setValue('FileUrl');
  sh.getRange(1, 4).setValue('FileMimeType');
  sh.getRange(1, 5).setValue('Description');
  var row = 2;
  for(var i in filelist){
    sh.getRange(row, 1).setValue(filelist[i].folderName);
    sh.getRange(row, 2).setValue(filelist[i].fileName);
    sh.getRange(row, 3).setValue(filelist[i].fileUrl);
    sh.getRange(row, 4).setValue(filelist[i].fileMimeType);
    sh.getRange(row, 5).setValue(filelist[i].fileDescription);
    row++;
  }
  sh.getRange(2, 1, 5).sort(1);
}

function getFileList(name, id, level){
  if(maxlevel < level) maxlevel = level;
  var folder = DriveApp.getFolderById(id); // I change the folder ID  here 
  var subfolders = folder.getFolders();
  while(subfolders.hasNext()){
    subfolder = subfolders.next();
    getFileList(name + '\\' + subfolder.getName(), subfolder.getId(), ++level);
    level--;
  }
  var files = folder.getFiles();
  while(files.hasNext()){
    file = files.next();
    filelist.push({
      folderName: name, 
      fileName: file.getName(),
      fileUrl: file.getUrl(),
      fileMimeType: file.getMimeType(),
      fileDescription: file.getDescription() == null ? '' : file.getDescription()
    });
  }
}
블로그 이미지

ligilo

행복한 하루 되세요~

,