从共享驱动器导出文件夹信息; Pagetoken的问题
我正在尝试将共享驱动器中的文件夹导出文件夹名称,文件夹ID,文件夹URL和FilePath。这部分有效,但我仅限于100个项目。我正在尝试使用Pagetoken/NextPagetoken功能来提取所有项目,但是它似乎不起作用,并且继续仅返回100个项目。我在此解决方案是类似的问题。
function getFolderURLs() {
var folders, pageToken;
var foldersArray = [["Folder Name", "Link", "Folder ID", "Filepath"]]
do {
try {
var optionalArgs = {
supportsAllDrives: true,
includeItemsFromAllDrives: true,
pageToken: pageToken,
maxResults: 100,
q: '"132vqY8oyd6xKpnxxxxxxxxxxx" in parents and trashed = false and mimeType = "application/vnd.google-apps.folder"'
}
var folders = Drive.Files.list(optionalArgs);
var allFolders = folders.items
if (!allFolders || allFolders.length === 0) {
Logger.log ('No folders found.');
return
}
for (i = 0; i < allFolders.length; i++) {
var folder = allFolders[i];
var name = folder.title
var link = folder.alternateLink
var id = folder.id
var parentID = Drive.Files.get(folder.id,{
supportsAllDrives: true,
}).parents[0].id
var parent = Drive.Files.get(parentID,{
supportsAllDrives: true,
includesItemsFromAllDrives: true,
}).title
var filepath = `${parent}/${name}`
foldersArray.push([name, link, id, filepath])
}
pageToken = folders.nextPageToken;
} catch (err) {
Logger.log('Failed with error %s', err.message);
}
}
while (pageToken);
var ss = SpreadsheetApp.create('Clients Folder ID Listing');
var sheet = ss.getActiveSheet();
sheet.getRange(1,1,foldersArray.length, 4).setValues(foldersArray)
Logger.log(foldersArray)
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信您的目标如下。
当我看到您的脚本时,
drive.files.get
在循环中使用。在这种情况下,过程成本可能很高。而且,在您的脚本中,似乎无法检索子文件夹。在这种情况下,以下示例脚本怎么样?在此答案中,我使用Google Apps脚本库来检索使用Google Apps脚本的文件和文件夹列表。我为这种情况创建了这个库。
用法:
1。安装库。
请安装Google Apps脚本库。您可以在
2。启用驱动API。
该脚本使用Drive API。因此,请在高级Google Services 上启用驱动器API 。
3.示例脚本:
“文件夹名称”,“链接”,“文件夹ID”,“ filepath”的值放入创建的电子表格中。
参考:
I believe your goal is as follows.
When I saw your script,
Drive.Files.get
is used in a loop. In this case, the process cost might be high. And, in your script, it seems that the subfolders cannot be retrieved.In this case, how about the following sample script? In this answer, I used a Google Apps Script library for retrieving the file and folder list using Google Apps Script. I created this library for like this situation.
Usage:
1. Install library.
Please install the Google Apps Script library. You can see the method for installing it at here.
2. Enable Drive API.
This script uses Drive API. So, please enable Drive API at Advanced Google services.
3. Sample script:
"Folder Name", "Link", "Folder ID", "Filepath"
are put into the created Spreadsheet.Reference: