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;
}
}
|