Google Driveの特定フォルダ内にあるファイルの説明をすべて取得してドキュメントに書き出したくて書いたコードです。
実行プロセスの概要
- getFileDescriptionsInFolder() :フォルダを指定してファイルをすべて取得します
- fileObjArray.sort(asc):ファイル名の昇順で並べ替えます
- createDescriptionArray(sortedArray) :説明だけの配列を作ります
- descriptionsArray.join("\n") :配列を改行でつなげた文字列にします
- addTextToDocument(str) :指定したDocumentに書き出します
コード.gs
function addFileDescriptionsToDocument() {
const fileObjArray = getFileDescriptionsInFolder();
const sortedArray = fileObjArray.sort(asc);
Logger.log(sortedArray);
const descriptionsArray = createDescriptionArray(sortedArray);
const str = descriptionsArray.join("\n");
addTextToDocument(str);
}
function getFileDescriptionsInFolder() {
const folderId = "FOLDER_ID";
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFiles();
let array = [];
while(files.hasNext()) {
const file = files.next();
const obj = {};
obj["name"] = file.getName();
obj["url"] = file.getUrl();
obj["description"] = file.getDescription();
array.push(obj);
}
return array;
}
function asc(a, b){
const targetA = a.name;
const targetB = b.name;
if(targetA > targetB){
return 1;
}else if(targetA < targetB ){
return -1;
}else{
return 0;
}
}
function createDescriptionArray(sortedArray) {
const array = [];
const target = "description";
for(let i = 0; i < sortedArray.length; i++){
const description = sortedArray[i][target];
array.push(description);
}
return array;
}
function addTextToDocument(description) {
const url = "DOCUMENT_URL";
const doc = DocumentApp.openByUrl(url);
const body = doc.getBody();
body.appendParagraph(description);
}
|
参考