特定のフォルダ内のファイルとファイルIDをファイル名順に取得したくて書いたコードです。
このようなファイルを持つフォルダがあって
SAMPLEというファイル名を含むファイル名とIDを
このように昇順で取得したい
[
{name=SAMPLEシート1, id=FILE_ID},
{name=SAMPLEシート2, id= FILE_ID},
{name=SAMPLEシート3, id= FILE_ID}
]
コード.gs
function getFilesBySearch() { var folder = DriveApp.getFolderById("FOLDER_ID"); var files = folder.searchFiles('title contains ""'); var objs = []; while (files.hasNext()) { var file = files.next(); var name = file.getName(); var id = file.getId(); var obj = {}; obj["name"] = name; obj["id"] = id; objs.push(obj); } var sorted = objs.sort(asc) Logger.log(sorted); } function asc(a, b){ var targetA = a.name; var targetB = b.name; if(targetA > targetB){ return 1; }else if(targetA < targetB ){ return -1; }else{ return 0; } } |
関連記事
Googleドライブ内の特定のフォルダ内でファイルを探したい(スクリプトで)
Googleドライブ内のファイルをファイル名で並べ替えて取得したい
配列内のオブジェクトをvalueでソートしたい