在特定文件夹中创建文件夹 GOOGLE DRIVE API V3

Fir*_*ser 1 android google-drive-android-api

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

\n\n

我已经查看了这个文档:

\n\n

Google 云端硬盘 API 示例

\n\n

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

\n\n

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

\n\n
        String IdFolder = (String) objects[0];\n            Bitmap bitmapUpload = (Bitmap) objects[1];\n\n            File fileMetadata = new File();\n            fileMetadata.setTitle("photo.jpg");\n            fileMetadata.setParents(Collections.singletonList(new ParentReference().setId(IdFolder)));\n\n            File file = mService.files().insert(fileMetadata, bitmapUpload)\n                    .setFields("id, parents")\n                    .execute();\n            System.out.println("File ID: " + file.getId());\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经尝试过这个:

\n\n
            String IdFolder = (String) objects[0];\n            Bitmap bitmapUpload = (Bitmap) objects[1];\n\n            int byteSize = bitmapUpload.getRowBytes() * bitmapUpload.getHeight();\n            ByteBuffer byteBuffer = ByteBuffer.allocate(byteSize);\n            bitmap.copyPixelsToBuffer(byteBuffer);\n\n\n            byte[] byteArray = byteBuffer.array();\n\n\n            ByteArrayInputStream bs = new ByteArrayInputStream(byteArray);\n\n            File fileMetadata = new File();\n            fileMetadata.setTitle("photo.jpg");\n            fileMetadata.setParents(Collections.singletonList(new ParentReference().setId(IdFolder)));\n\n            File file = mService.files().insert(fileMetadata, bs)\n                    .setFields("id, parents")\n                    .execute();\n            System.out.println("File ID: " + file.getId());\n
Run Code Online (Sandbox Code Playgroud)\n\n

但不起作用。刚说:

\n\n

com.google.api.client.http.abstract inputstreamcontent

\n\n

?\xc2\xbf?

\n

Abh*_*pta 8

我尝试制作一个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'))
Run Code Online (Sandbox Code Playgroud)

由@Jeremy Caney建议的编辑

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

现在,这里

file_metadata = {
    'name' : folder_name,
    'parents' : [folder_id],
    'mimeType' : 'application/vnd.google-apps.folder'
    }
Run Code Online (Sandbox Code Playgroud)

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

现在

file = drive_service.files().create(body=file_metadata,
                                    fields='id').execute()
Run Code Online (Sandbox Code Playgroud)

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

是我制作的工具,用于使用终端本身执行所有必要的选项,您通常在谷歌驱动器的网站上执行此操作,您可以将其阅读作为参考。

希望这会有所帮助。