如何使用 Java Google Drive API 创建文件夹动态并上传多个文件

问题描述

我有一个 Google Bucket 中的文件列表。我必须在 Google Drive 中创建一个文件夹并将所有文件从 Google Bucket 上传到该文件夹​​中。我正在正确上传文件,但无法将文件上传到特定文件夹。文件一一上传到云端硬盘根文件夹中,但我希望它们位于特定文件夹中。

     Page<Blob> blobs = bucket.list(Storage.BlobListOption.prefix(BucketUrl));
     Drive driveService = DriveConfUtil.getDriveService(accesstoken);
     for (Blob fileBlob: blobs.getValues()) {
       InputStream inputStream = new
       ByteArrayInputStream(fileBlob.getContent(BlobSourceOption.generationmatch()));
       File file = new File();
       file.setName(fileBlob.getName());
       file.setMimeType("application/mydocfolder.folder");
       File file1 = null;
       try {
         AbstractInputStreamContent streamContent = null;
         streamContent = new InputStreamContent("application/pdf",inputStream);
         file1 = driveService.files().create(file,streamContent).setFields("id").execute();

       } catch (IOException e) {

         e.printstacktrace();
       }
     }

解决方法

我知道您的脚本正确上传了文件,但它是在云端硬盘主文件夹而不是您想要的文件夹中上传的。您只需在 request body 中填写 parents[] 参数即可轻松解决此问题。要在该参数中指定文件夹,您需要它的 id。请记住,一个云端硬盘文件可以同时托管在不同的文件夹中。不要犹豫,问我任何澄清。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...