티스토리 뷰

출처 : https://littlecarbb.tistory.com/entry/자주-쓰는-git-명령어-cli-1

 

[apps script] 구글 드라이브 폴더 내 파일리스트 추출

출처 : https://smartagent.blog/2018/07/16/gsuite05/ G Suite 사용법 #5 앱스 스크립트 활용 예시 모음 이번에는 구글 Apps Script를 배워보겠습니다. 우선 구글 Apps Script 소개를 봅시다. Many Google apps, one platform in t

littlecarbb.tistory.com

 

폴더 리스트 만 가져오기 코드 재수정

 

 

---------------------------------------------------------------------------------------------

 

 

//구동 시작점 메소드
function get_filelist_with_subfolder_start() {
   
  // get This Folder 
  var thisFile = DriveApp.getFileById(SpreadsheetApp.getActive().getId());
  var folders = thisFile.getParents()
  var folderId;
  while (folders.hasNext()) {
    var folder = folders.next();
    folderId = folder.getId();
    break;
  }
   
  // get ID of This Folder 
  var daforder = DriveApp.getFolderById(folderId);
   
  // clear this sheet
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.clear();
 
  var srow = 1;
  // Set Header
  sheet.getRange(srow, 1).setValue("폴더");
  sheet.getRange(srow, 2).setValue("파일");
  sheet.getRange(srow, 3).setValue("만들어진 날짜");
  sheet.getRange(srow, 4).setValue("마지막으로 수정한 날짜");
  sheet.getRange(srow, 5).setValue("소유자");
  sheet.getRange(srow, 6).setValue("file type");
  sheet.getRange(srow, 7).setValue("file size (Mb)");
  sheet.getRange(srow, 8).setValue("Link");
  // Set Header Color
  var range = sheet.getRange("A1:H1");
  range.setBackground("#d9d9d9");
  // Set Format of URL link
  range = sheet.getRange("H:H");
  range.setWrapStrategy(SpreadsheetApp.WrapStrategy.CLIP);
 
  // write file list from This Folder
  var name_thisfolder = daforder.getName();
  _write_file_from_folder(daforder, sheet, name_thisfolder);
 
  // sub folders
  var depth1_folders = daforder.getFolders();
  while(depth1_folders.hasNext()){
    var depth1_folder = depth1_folders.next();
    // Logger.log(" this: " + name_thisfolder + " sub: " + subfolder.getName());
    var name_folder = name_thisfolder + ">" + depth1_folder.getName();
    _write_file_from_folder( depth1_folder, sheet, name_folder )
    _get_filelist_with_subfolder_loop(depth1_folder, sheet, name_folder);
  } // end while depth1
 
}


function _get_filelist_with_subfolder_loop(root_depth_folder, sheet, add_path) {
      var sub_depth_folders = root_depth_folder.getFolders();
      while(sub_depth_folders.hasNext()){
        var sub_depth_folder = sub_depth_folders.next();
        var name_folder = add_path + ">" + sub_depth_folder.getName();
        _write_file_from_folder( sub_depth_folder, sheet, name_folder )
        _get_filelist_with_subfolder_loop(sub_depth_folder,sheet, name_folder);
      } // end while depth
}


/**
 * 폴더 내 파일 리스트를 시트에 쓰기
 */
function _write_file_from_folder(ifolder, isheet, ifolder_name){
  var dafiles = ifolder.getFiles();
  
  // write folder info
  var srow = isheet.getLastRow() + 1;
  isheet.getRange(srow, 1).setValue(ifolder_name);
  isheet.getRange(srow, 3).setValue(ifolder.getDateCreated());
  isheet.getRange(srow, 4).setValue(ifolder.getLastUpdated());
  isheet.getRange(srow, 6).setValue("FOLDER");
  isheet.getRange(srow, 8).setValue(ifolder.getUrl());
   
  var range = isheet.getRange("A"+srow+":H"+srow);
  range.setBackground("#f3f3f3");

  // write file list 파일 리스트 쓰기
  //while(dafiles.hasNext()){
    //var dafile = dafiles.next();
    //var file_name = dafile.getName();
    //srow = srow + 1;
    // Write file info
    //isheet.getRange(srow, 1).setValue(ifolder_name); // 폴더 이름
    //isheet.getRange(srow, 2).setValue(file_name); // 파일 이름
    //isheet.getRange(srow, 3).setValue(dafile.getDateCreated()); // 만들어진 날짜
    //isheet.getRange(srow, 4).setValue(dafile.getLastUpdated()); // 마지막으로 수정한 날짜
    // isheet.getRange(srow, 5).setValue(dafile.getOwner().getName()); // 소유자
    //isheet.getRange(srow, 6).setValue(dafile.getMimeType().replace('application/vnd.google-apps.', 'google ')); // 파일 종류
    //isheet.getRange(srow, 7).setValue(dafile.getSize() / (1024 * 1024) ); // 파일 사이즈
    //isheet.getRange(srow, 8).setValue(dafile.getUrl()); // 파일 url
  //}
   
}

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함