【发布时间】:2014-05-20 02:31:36
【问题描述】:
我正在尝试创建一个 Google Apps 脚本,该脚本将允许用户获取文件夹中的所有文件,包括连接到主文件夹的子文件夹中的文件。 (请注意,在我的代码中,我是提供文件夹 ID 的人,这将是主文件夹)
我已经设法从一个文件夹中获取所有文件,但我也希望提取子文件夹中的文件。
请看下面我到目前为止所做的代码。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var searchMenuEntries = [ {name: "Search in all files", functionName: "search"}];
//ss.addMenu("Search Document List", searchMenuEntries);
ss.addMenu("Import Data from Google Drive",searchMenuEntries);
}
function search() {
// Prompt the user for a search term
var searchTerm = Browser.inputBox("Enter the folder ID of the files that you want to import:");
//var folder = DocsList.getFolder(searchTerm);
var folder = DocsList.getFolderById(searchTerm)
var contents = folder.getFiles();
var file;
var data;
var sheet = SpreadsheetApp.getActiveSheet();
sheet.clear();
sheet.appendRow(["FileName","File name (with link)", "Revision Date", "File Type", "DocumentID", "Meta Data"]);
sheet.appendRow(["StringFilter - Hidden", "StringFilter", "DateFilter", "StringFilter - Hidden","StringFilter - Hidden", "csvFilter - Hidden"]);
for (var i = 0; i < contents.length; i++) {
file = contents[i];
if (file.getFileType() == "SPREADSHEET") {
continue;
}
data = [
file.getName(),
"<a href= " + file.getUrl() + " target= '_blank'>" + file.getName() + "</a>",
file.getLastUpdated(),
file.getFileType(),
file.getId(),
file.getDescription()
];
sheet.appendRow(data);
}
};
现在,有了这段代码,结果会是这样。
但它只会显示主文件夹下的文件,我也想在里面循环并检查是否有子文件夹因此检查里面是否有文件并获取它。
此外,我想添加一个列名“文件夹/子文件夹”,其中我想显示该文件的文件夹名称和该文件的主文件夹(如果适用)请参见下面我手动完成的示例. (例如,主文件夹 = 文件夹 1,子文件夹 = 子文件夹 1)
请指教。
【问题讨论】:
标签: javascript google-apps-script google-sheets