【发布时间】:2021-08-27 02:17:24
【问题描述】:
我有一个场景,我在 Google 云端硬盘和共享云端硬盘中搜索文件夹。我有以下参数 - 标题包含“文件夹名称”,trashed = false 和 mimeType =“application/vnd.google-apps.folder”
我将其设置为创建一个新工作表来保存结果。我认为其中一个“文件夹”保存在共享驱动器中,因此我会收到以下错误消息:Cannot read property 'length' of undefined.
如果“childFolder.owners[0].emailAddress”不适用(如果文件夹位于共享驱动器中),我该如何编写代码并将此字段设为空白并继续发布数组长度?我的代码停在 childFolder.owners[0].emailAddress。
抱歉,这是我第一次尝试使用云端硬盘 API 进行搜索 - 云端硬盘和共享云端硬盘。我希望我的问题是有道理的,如果不是我的道歉。
非常感谢任何输入。
这是我的部分代码:
do {
var rows = [];
var pageToken;
var count = 0;
var queryFolder1 = 'title contains "' + folderName2 + '" and trashed = false and mimeType = "application/vnd.google-apps.folder"';
var driveFolders = Drive.Files.list({
q: queryFolder1,
maxResults: 500,
pageToken: pageToken,
orderBy: 'title',
field: 'parents:[id]',
includeItemsFromAllDrives: true,
supportsAllDrives: true
});
/* Create new sheet to save the output */
var newSheet = SpreadsheetApp.create(folderName2);
var newSheetID = newSheet.getId();
var newSheet1 = newSheet.getSheetByName('Sheet1');
newSheet1.getRange('A2:L2').setValues([['Parent URL', 'File Name', 'File ID', 'File URL', "MimeType: File Type", 'Owner', 'Creation Date', 'Last Modified Date', 'Last Modified User', 'Last Modified User Email Address', 'Shared DriveId', 'Sharing User EmailAddress']]);
/* Gather data */
var driveFolder = driveFolders.items;
if (driveFolder) {
for (var x = 0; x < driveFolder.length; x++) {
var childFolder = driveFolder[x];
rows.push([childFolder.parents[0].id, childFolder.title, childFolder.id, childFolder.alternateLink, childFolder.mimeType, childFolder.owners[0].emailAddress, childFolder.createdDate, childFolder.modifiedDate, childFolder.lastModifyingUserName, childFolder.lastModifyingUser.emailAddress, childFolder.driveId, childFolder.sharingUser.emailAddress]);
}
newSheet1.getRange(3, 1, rows.length, rows[0].length).setValues(rows);
}
【问题讨论】:
标签: google-apps-script google-drive-api