【发布时间】:2021-06-15 10:23:56
【问题描述】:
我正在尝试从 google 驱动器文件夹递归地列出所有文件到电子表格,并按大小对文件列表进行排序(最大的文件应该在顶部)。我遇到了脚本问题
启动函数给出错误 - ReferenceError: *****folder_id is not defined (Line 16)
function start() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type", "Folder", "Folder Slug"]);
var folder = DriveApp.getFoldersById(FOLDER_ID);
if (folder.hasNext()) {
processFolder(folder);
} else {
Browser.msgBox('Folder not found!');
}
function processFolder(folder) {
while (folder.hasNext()) {
var f = folder.next();
var contents = f.getFiles();
addFilesToSheet(contents, f);
var subFolder = f.getFolders();
processFolder(subFolder);
}
}
function addFilesToSheet(files, folder) {
var data;
var folderName = folder.getName();
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
sheet.appendRow([
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
file.getMimeType(),
folderName
]);
}
}
}
【问题讨论】:
-
@Cooper 感谢您的意见。另一方面,驱动 api 是否有任何选项来获取以 GB(而不是字节)为单位的大小 file.getSize() 默认输出以字节为单位的大小
-
你为什么不查一下?
-
我还没有找到它,我想我会再问一个单独的问题
标签: javascript google-apps-script google-sheets google-drive-api