【问题标题】:Google Drive API v3 find all files in folder and childrenGoogle Drive API v3 查找文件夹和子项中的所有文件
【发布时间】:2020-02-18 21:23:48
【问题描述】:

我有用于 java 脚本的 google api 客户端 我创建了所有请求。 我的应用程序中的最后一个请求是获取文件夹和子文件夹中的所有文件。 它是请求获取父文件夹中的所有文件。

   let files = await obj.staticProperty.gapi.client.drive.files.list({
                'q': `'${object['folder']['id']}' in parents`,
                'pageSize': 10
            })

如何获取子文件夹中的所有文件?

【问题讨论】:

    标签: javascript google-drive-api google-api-js-client


    【解决方案1】:

    我以递归方式执行此操作,请注意我有一个收集文件的回调 - 我将 Redux 与 React 一起使用,因此它只是调度一个操作,每次该方法获取更多文件时将一堆文件添加到状态:

    function getAllFiles(bearerToken, pageToken = undefined, q = undefined,
                         callback = (files) => console.log('No callback provided',
                             files),
                         onComplete = () => console.log('No onComplete provided'),
    ) {
      axios.get('https://www.googleapis.com/drive/v3/files', {
        params: {
          corpora: 'user',
          fields: 'files(id,name,size,mimeType,parents,webViewLink,trashed),nextPageToken',
          // q: 'mimeType = \'application/vnd.google-apps.folder\'',
          q: q,
          pageSize: 1000,
          pageToken: pageToken,
        },
        headers: {
          'Accept': 'application/json',
          'Authorization': 'Bearer ' + bearerToken,
        },
      }).then((result) => {
        callback(result.data.files);
        if (result.data.nextPageToken) {
          getAllFiles(bearerToken, result.data.nextPageToken, q, callback,
              onComplete);
        } else {
          onComplete();
        }
      }).catch((error) => {
        console.error('Error folders result', error);
      });
    }
    

    这是来自https://drivedashboard.saisols.com/我的“Drive Dashboard”的代码

    【讨论】:

    • 谢谢。这是一个很好的例子。在我的代码中,我为此使用了第二个函数。我使用承诺。我认为对于根目录中的所有文件都有类似的方法。
    猜你喜欢
    • 1970-01-01
    • 2020-08-14
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多