2

Python Google Drive API を使用してファイルのリモート パスを構築しようとしています。/folderA/FolderB/folderC/theFile.txt というパスを指定すると、ファイルを folderC にアップロードする前に、Drive に folderA を作成し、次にその中に folderB を作成し、次に B に folderC を作成します。

私は短いループを持っています:

currentParent = pathStartID
for aFolder in pathArray:
    thisFoldersID = self.createRemoteFolder(aFolder, parentID = currentParent)
    currentParent = thisFoldersID

最初にドライブ ルートに folderA を作成します。folderA の ID は「pathStartID」です。pathArray には、folderB と folderC の名前が含まれています。

createRemoteFolder()

次のようになります。

def createRemoteFolder(self, folderName, parentID = None):
    # Create a folder on Drive, returns the newely created folders ID
    body = {
        'title': folderName,
        'mimeType': "application/vnd.google-apps.folder"
    }
    if parentID:
        body['parentsCollection'] = [{'id': parentID}]
        root_folder = driveFileMan.client.files().insert(body = body).execute()
    return root_folder['id']

しかし、何らかの理由で、すべてのフォルダーが、私が望む親フォルダーではなく、Google ドライブのルートに作成されています。

誰かが私が間違っていることを見つけることができますか? または、これを行う簡単な方法はありますか?

4

1 に答える 1

1

親を設定するための間違ったプロパティ名のように見えます。試す:

body['parents'] = [{'id': parentID}]
于 2013-03-11T19:07:46.053 に答える