【发布时间】:2017-02-28 02:28:23
【问题描述】:
所以我最近发现了这个 google drive 脚本并尝试使用它。 该脚本通常应该在我的 google 驱动器文件夹中获取文件名和 url,并将它们复制到电子表格中。
当我单击运行时,我没有收到任何错误,并且我的驱动器中没有任何反应。
是否有我应该更改的变量以使其工作?
PS : 我对编码很陌生,似乎找不到这段代码有什么问题
提前感谢您的帮助!
代码如下:
function myFunction() {
function listFilesInFolder(foldername) {
// If we have not been provided a foldername, assume we will interact with user.
var interactive = (typeof foldername === 'undefined');
// Get name of folder to list
if (interactive) {
foldername = Browser.inputBox("List files in folder", "Enter folder name", Browser.Buttons.OK_CANCEL);
}
if (foldername === '') return; // No name provided, exit quietly
var folders = DriveApp.getFoldersByName(foldername);
if (!folders.hasNext()) {
if (interactive) Browser.msgBox("Folder not found.");
return;
}
var folder = folders.next();
var contents = folder.getFiles();
var file, data, sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["Name", "Date", "Size", "URL", /*"Download",*/ "Description", "Type"]);
// Loop over files in folder, using file iterator
while (contents.hasNext()) {
file = contents.next();
if (file.getMimeType() == MimeType.GOOGLE_SHEETS) { // "SPREADSHEET"
// Skip displaying spreadsheets - I don't know why...
continue;
}
data = [
file.getName(),
file.getDateCreated(),
file.getSize(),
file.getUrl(),
//"https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(),
file.getDescription(),
niceFileType( file.getMimeType() )
];
sheet.appendRow(data);
}
}
}
【问题讨论】:
-
也许您应该先启用 Drive API。检查this。
-
@SangbokLee 刚做了,脚本还是不行
-
您无需启用 Drive API 即可使用 DriveApp。此脚本是否附加到电子表格?
-
@SpencerEaston 我真的不知道。我发现唯一提到“电子表格”的行是这个 [ var file, data, sheet = SpreadsheetApp.getActiveSheet(); sheet.clear(); ] 但我不知道我是否应该创建一个特定的工作表或在代码中添加名称以使其工作
-
此脚本需要在电子表格中运行。创建一个新的电子表格。点击
tools->Script editor。将您的代码添加到打开的脚本中。它应该能够在该上下文中运行。
标签: arrays google-apps-script google-drive-api google-apps