浏览谷歌团队驱动器中的文件 [英] browse files in google team drive

查看:85
本文介绍了浏览谷歌团队驱动器中的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图编写一个简单的Google Apps脚本来列出Google Team Drive中的文件,但我没有取得太大的成功。



以下是代码:

  function start()
{
Logger.log(Starting应用...);
var startingFolders = DriveApp.getFoldersByName(Temp);
if(startingFolders.hasNext())
{
//假设只有一个名称为
的文件夹accessFiles(startingFolders.next());
}
else
Logger.log(找不到文件夹);


函数accessFiles(文件夹)
{
Logger.log(Folder:%s,folder.getName());
//打印一些文件属性
var files = folder.getFiles();
while(files.hasNext())
{
var file = files.next();
Logger.log(正在处理文件%s。当前访问:%s。,file.getName(),file.getSharingAccess());
//一些工作在这里...
}

//探索子文件夹
while(folder.hasNext())
{
var subfolder = folder.next();
accessFiles(子文件夹);




$ b $ p
$ b

问题是日志总是打印文件夹未找到消息。 Temp是我有权访问的团队云端硬盘中的文件夹。请注意,我正在尝试使用Google Apps脚本,而不是REST API。



我不确定我做错了什么,或者团队云端硬盘不支持...



任何帮助将不胜感激!感谢。

解决方案

使用Google Apps脚本服务(DriveApp)无法在团队云端硬盘中搜索文件和文件夹,但我们可以使用Drive Advanced Service,但首先我们应该先启用它。这些说明位于启用高级服务



以下脚本将通过其ID列出名为Temp的文件夹内的所有文件。

 函数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('有问题。');
return;
}
var query ='trashed = false and'+ // to exclude trashed files
'not mimeType =application / vnd.google-apps.folder'; //排除文件夹
var files,pageToken;
do {
files = Drive.Files.list({
q:query,
maxResults:100,
pageToken:pageToken,
// team drive queries
corpora:'teamDrive',
supportsTeamDrives:true,
teamDriveId:teamDriveId,
includeTeamDriveItems:true
});
if(files.items&& file.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);
}


I am trying to write a simple Google Apps Script to list the files in a Google Team Drive and I am not having much success.

Here is the code:

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);
  }
}

The problem is that the log always prints the "Folder not found" message. "Temp" is a folder in a Team Drive that I have Full access to. Note that I am trying to use the Google Apps Script and not the REST API.

I am not sure what I am doing wrong, or if Team Drives are not supported yet...

Any help would be appreciated! Thanks.

解决方案

It's not possible to search file and folders on a Team Drive by using the Google apps Script Service (DriveApp) but we could use the Drive Advanced Service but first we should enabled it first. The instructions are on Enabling Advanced Services.

The following script will list all the files inside a folder named Temp from an specified Team Drive by its id.

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);
}

这篇关于浏览谷歌团队驱动器中的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆