LANG SELRCT

コードを書く場所についてはこちら

2019年4月30日火曜日

Googleドライブ内のフォルダをフォルダ名で並べ替えて取得したい


Googleドライブ内のファイルをファイル名で並べ替えて取得したい
のフォルダ版

特定のフォルダ内のフォルダをフォルダ名で並べ替えます



コード.gs
/************************************
フォルダ内のフォルダを取得して
フォルダ名で昇順に並べ替えて
フォルダ名とIDの配列を返す
************************************/
function getFolderArray() {
  var parentFolderId = "ID";
  var folderArray = [];
  var folders = getFolders(parentFolderId);
  for(var i = 0; i < folders.length; i++) {
    var name = folders[i]['name'];
    var id = folders[i]['id'];
    folderArray.push([name, id]);
  }
  Logger.log(folderArray);
}

/************************************
フォルダ内のフォルダを取得して
昇順にして返す
************************************/
function getFolders(parentFolderId) {
  var folderProps = [];
  var parentFolder = DriveApp.getFolderById(parentFolderId);
  var contents = parentFolder.getFolders();
  while(contents.hasNext()) {
    var folder = contents.next();
    var name = folder.getName();
    var id = folder.getId();
    var obj = {};
    obj["name"] = name;
    obj["id"] = id;
    folderProps.push(obj);
  }
  var sorted = objSort(folderProps);
  return folderProps;
}

/************************************
並べ替える
************************************/
function objSort(fileProps) {
  var ascending = fileProps.sort(asc);
  return ascending;
}

/************************************
nameで昇順に並べ替える
************************************/
function asc(a, b){
  var A = a.name;
  var B = b.name;
  if(A > B){
    return 1;
  }else if(A < B ){
    return -1;
  }else{
   return 0;
  }
}