浏览 google 团队驱动器中的文件
browse files in google team drive
我正在尝试编写一个简单的 Google Apps 脚本来列出 Google Team Drive 中的文件,但我没有取得太大的成功。
代码如下:
function start()
{
Logger.log("Starting application...");
var startingFolders = DriveApp.getFoldersByName("Temp");
if (startingFolders.hasNext())
{
// Assuming only one folder with that name
accessFiles(startingFolders.next());
}
else
Logger.log("Folder not found");
}
function accessFiles(folder)
{
Logger.log("Folder: %s", folder.getName());
// Print some file properties
var files = folder.getFiles();
while (files.hasNext())
{
var file = files.next();
Logger.log("Working on file %s. Current access: %s.", file.getName(), file.getSharingAccess());
// some work here...
}
// Explore subfolders
while (folder.hasNext())
{
var subfolder = folder.next();
accessFiles(subfolder);
}
}
问题是日志总是打印 "Folder not found" 消息。 "Temp" 是 Team Drive 中的一个文件夹,我拥有完全访问权限。请注意,我正在尝试使用 Google Apps 脚本而不是 REST API.
我不确定自己做错了什么,或者是否尚不支持 Team Drives...
如有任何帮助,我们将不胜感激!谢谢
无法使用 Google 应用程序脚本服务 (DriveApp) 搜索团队云端硬盘上的文件和文件夹,但我们可以使用云端硬盘高级服务,但首先我们应该先启用它。说明在 Enabling Advanced Services.
以下脚本将按 ID 列出指定团队驱动器中名为 Temp 的文件夹中的所有文件。
function listFiles(){
var teamDriveId = 'put_here_the_teamdrive_id';
var pageToken;
var folders = Drive.Files.list({
corpora: 'teamDrive',
supportsTeamDrives: true,
teamDriveId: teamDriveId,
includeTeamDriveItems: true,
q: 'title = "Temp"'
});
if(folders.items.length !== 1) {
Logger.log('There is a problem.');
return;
}
var query = 'trashed = false and ' + //to exclude trashed files
'not mimeType = "application/vnd.google-apps.folder"'; // To exclude folders
var files, pageToken;
do {
files = Drive.Files.list({
q: query,
maxResults: 100,
pageToken: pageToken,
// required for team drive queries
corpora: 'teamDrive',
supportsTeamDrives: true,
teamDriveId: teamDriveId,
includeTeamDriveItems: true
});
if (files.items && files.items.length > 0) {
for (var i = 0; i < files.items.length; i++) {
var file = files.items[i];
Logger.log('%s (ID: %s)', file.title, file.id);
}
} else {
Logger.log('No files found.');
}
pageToken = files.nextPageToken;
} while (pageToken);
}
我正在尝试编写一个简单的 Google Apps 脚本来列出 Google Team Drive 中的文件,但我没有取得太大的成功。
代码如下:
function start()
{
Logger.log("Starting application...");
var startingFolders = DriveApp.getFoldersByName("Temp");
if (startingFolders.hasNext())
{
// Assuming only one folder with that name
accessFiles(startingFolders.next());
}
else
Logger.log("Folder not found");
}
function accessFiles(folder)
{
Logger.log("Folder: %s", folder.getName());
// Print some file properties
var files = folder.getFiles();
while (files.hasNext())
{
var file = files.next();
Logger.log("Working on file %s. Current access: %s.", file.getName(), file.getSharingAccess());
// some work here...
}
// Explore subfolders
while (folder.hasNext())
{
var subfolder = folder.next();
accessFiles(subfolder);
}
}
问题是日志总是打印 "Folder not found" 消息。 "Temp" 是 Team Drive 中的一个文件夹,我拥有完全访问权限。请注意,我正在尝试使用 Google Apps 脚本而不是 REST API.
我不确定自己做错了什么,或者是否尚不支持 Team Drives...
如有任何帮助,我们将不胜感激!谢谢
无法使用 Google 应用程序脚本服务 (DriveApp) 搜索团队云端硬盘上的文件和文件夹,但我们可以使用云端硬盘高级服务,但首先我们应该先启用它。说明在 Enabling Advanced Services.
以下脚本将按 ID 列出指定团队驱动器中名为 Temp 的文件夹中的所有文件。
function listFiles(){
var teamDriveId = 'put_here_the_teamdrive_id';
var pageToken;
var folders = Drive.Files.list({
corpora: 'teamDrive',
supportsTeamDrives: true,
teamDriveId: teamDriveId,
includeTeamDriveItems: true,
q: 'title = "Temp"'
});
if(folders.items.length !== 1) {
Logger.log('There is a problem.');
return;
}
var query = 'trashed = false and ' + //to exclude trashed files
'not mimeType = "application/vnd.google-apps.folder"'; // To exclude folders
var files, pageToken;
do {
files = Drive.Files.list({
q: query,
maxResults: 100,
pageToken: pageToken,
// required for team drive queries
corpora: 'teamDrive',
supportsTeamDrives: true,
teamDriveId: teamDriveId,
includeTeamDriveItems: true
});
if (files.items && files.items.length > 0) {
for (var i = 0; i < files.items.length; i++) {
var file = files.items[i];
Logger.log('%s (ID: %s)', file.title, file.id);
}
} else {
Logger.log('No files found.');
}
pageToken = files.nextPageToken;
} while (pageToken);
}