【问题标题】:Create folder in specific folder GOOGLE DRIVE API V3在特定文件夹 GOOGLE DRIVE API V3 中创建文件夹
【发布时间】:2018-04-09 16:54:48
【问题描述】:

我正在尝试以编程方式获取我的谷歌驱动器中文件夹的名称并在文件夹内创建一个文件夹,但没有办法。

我已查看此文档:

Google Drive API EXAMPLE!

但是我如何获得一个特定的文件夹并在其中创建另一个文件夹?。以编程方式,而不是通过助手。

好的。我需要将位图更新到谷歌驱动器。我尝试使用此代码但不起作用

        String IdFolder = (String) objects[0];
            Bitmap bitmapUpload = (Bitmap) objects[1];

            File fileMetadata = new File();
            fileMetadata.setTitle("photo.jpg");
            fileMetadata.setParents(Collections.singletonList(new ParentReference().setId(IdFolder)));

            File file = mService.files().insert(fileMetadata, bitmapUpload)
                    .setFields("id, parents")
                    .execute();
            System.out.println("File ID: " + file.getId());

我试过这个:

            String IdFolder = (String) objects[0];
            Bitmap bitmapUpload = (Bitmap) objects[1];

            int byteSize = bitmapUpload.getRowBytes() * bitmapUpload.getHeight();
            ByteBuffer byteBuffer = ByteBuffer.allocate(byteSize);
            bitmap.copyPixelsToBuffer(byteBuffer);


            byte[] byteArray = byteBuffer.array();


            ByteArrayInputStream bs = new ByteArrayInputStream(byteArray);

            File fileMetadata = new File();
            fileMetadata.setTitle("photo.jpg");
            fileMetadata.setParents(Collections.singletonList(new ParentReference().setId(IdFolder)));

            File file = mService.files().insert(fileMetadata, bs)
                    .setFields("id, parents")
                    .execute();
            System.out.println("File ID: " + file.getId());

但不起作用。刚刚说:

com.google.api.client.http.abstract 输入流内容

?¿?

【问题讨论】:

  • 也许尝试添加有关错误或每次尝试返回的内容的更多信息。

标签: android google-drive-android-api


【解决方案1】:

我已经尝试过制作一个python函数,你可以随意使用它。

def create_folder_in_folder(folder_name,parent_folder_id):
    
    file_metadata = {
    'name' : folder_name,
    'parents' : [folder_id],
    'mimeType' : 'application/vnd.google-apps.folder'
    }

    file = drive_service.files().create(body=file_metadata,
                                    fields='id').execute()
    
    print ('Folder ID: %s' % file.get('id'))

编辑建议@Jeremy Caney

因此,此函数将输入您要保留为要在其中创建另一个文件夹的父文件夹的特定文件夹的父 ID。其他是子文件夹名称。

现在,这里

file_metadata = {
    'name' : folder_name,
    'parents' : [folder_id],
    'mimeType' : 'application/vnd.google-apps.folder'
    }

此父 ID 作为 parent 参数,在 MIME 类型中,您告诉 google 服务器在父 ID parents 中创建文件夹类型的文件,其中 name 参数描述文件夹的名称。您可以查看 google here 提供的 MIME 类型以供您将来参考代码

现在

file = drive_service.files().create(body=file_metadata,
                                    fields='id').execute()

此行只是将请求发送到服务器执行操作,其中文件对象包含 JSON 格式的响应。

Here 是我使用终端本身完成所有必要选项的工具,您通常在 google drive 的网站上执行此操作,您可以阅读此作为参考。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    首先要做的是确保您的凭据有效。要向驱动 API 发出请求,请按照 quickstart of the documentation 中指定的说明进行操作(假设您将使用 android)。然后您可以根据文档work with folders。另请注意,parents 属性也可以在创建文件夹时用于创建子文件夹。希望这会有所帮助。

    【讨论】:

    猜你喜欢
    • 2019-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多