【问题标题】:Create folder if it does not exist in the Google Drive如果 Google Drive 中不存在文件夹,请创建该文件夹
【发布时间】:2012-10-10 03:54:36
【问题描述】:

我的应用程序使用 Google Drive Java API。

我只想在 Google Drive 的根目录中创建文件夹,前提是它不存在。我正在使用下面的代码来创建文件夹。

  file = service.files().insert(body).execute();

如何检查根文件夹中的文件夹是否存在。我只有文件夹名称“Myapp”,没有实例 ID。

【问题讨论】:

    标签: java google-drive-api


    【解决方案1】:
    Files.List request = service.files().list().setQ(
           "mimeType='application/vnd.google-apps.folder' and trashed=false");
    FileList files = request.execute();
    

    您现在可以浏览“文件”中的所有文件夹并检查是否有任何文件夹具有搜索到的标题。

    不要忘记遍历所有页面:

    request.setPageToken(files.getNextPageToken());
    

    编辑:

    也许你可以看看this site。您可以在搜索条件中添加标题,这样您就不必检索所有文件夹。

    【讨论】:

    • 这行得通,但我认为“mimeType='application/vnd.google-apps.folder' and tramed=false and title='MyApp' and 'root' in parents”的查询会要么返回他正在寻找的文件夹,要么返回一个空列表,因此无需遍历 nextPageToken
    • @pinoyyid 没错。这就是我在编辑第一个答案时的意思。
    • 更正:截至今天,要查询文件或目录名称,该字段是name,而不是上面建议的title
    【解决方案2】:
    Files.List request=service().files().list().setQ(
                       "mimeType='application/vnd.google-apps.folder' and trashed=false and name='"+folderName+"'");
            FileList files = request.execute();
    

    上面的代码行用于获取具有给定名称的所有文件/文件夹的列表。如果文件为空,则表示文件或具有给定名称的文件夹不存在,您可以使用下面提到的代码行创建一个新文件夹:

    File fileMetadata = new File();
            fileMetadata.setName(folderName);
            fileMetadata.setMimeType("application/vnd.google-apps.folder");
    
            File file = service().files().create(fileMetadata)
                .setFields("id")
                .execute();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 2019-05-02
      相关资源
      最近更新 更多