Googleドライブのフォルダ内のドキュメントからテキストを取得したい
ではシンプルに取得するコードを書きたくて並べ替えまではやりませんでしたが、ここでは並び替えるところまで書きました。
コード.gs
/************************************
フォルダ内のファイルを取得して
ファイル名で昇順に並べ替えて
ファイルIDたちの配列を返す
************************************/
function getFileArray() {
var folderId = "ID";
var fileArray = [];
var files = getFiles(folderId);
for(var i = 0; i < files.length; i++) {
var name = files[i]['name'];
var id = files[i]['id'];
var text = files[i]['text'];
fileArray.push([name, id, text]);
}
Logger.log(fileArray);
}
/************************************
フォルダ内のファイルを取得して
昇順にして返す
************************************/
function getFiles(folderId) {
var fileProps = [];
var folder = DriveApp.getFolderById(folderId);
var contents = folder.getFiles();
while(contents.hasNext()) {
var file = contents.next();
var name = file.getName();
var id = file.getId();
var text = getDocText(id);
var obj = {};
obj["name"] = name;
obj["id"] = id;
obj["text"] = text;
fileProps.push(obj);
}
var sorted = objSort(fileProps);
return fileProps;
}
/************************************
ドキュメントのテキストを取得する
************************************/
function getDocText(id) {
var doc = DocumentApp.openById(id);
var text = doc.getBody().getText();
return text;
}
/************************************
並べ替える
************************************/
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;
}
}
|
関連記事
Googleドライブのフォルダ内のドキュメントからテキストを取得したい
Googleドライブ内のファイルをファイル名で並べ替えて取得したい