2013-03-11 6 views
2

Je tente de créer un chemin d'accès distant pour un fichier à l'aide de l'API Python Google Drive. Étant donné un chemin, dites /folderA/FolderB/folderC/theFile.txt Je veux créer le dossierA sur Drive puis le dossierB dans celui, puis le dossierC dans B, avant de télécharger le fichier dans le dossier C.Building Path - Google Drive SDK

J'ai une courte boucle:

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

Je crée d'abord dossierA dans la racine du lecteur, et l'ID de dossierA est « pathStartID ». PathArray contient les noms de dossierB et de dossierC.

createRemoteFolder() 

ressemble à ceci:

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'] 

mais pour une raison quelconque chaque dossier est créé dans la racine de Google Drive, pas dans le dossier parent comme je veux.

Quelqu'un peut-il repérer ce que je fais mal? Ou y a-t-il un moyen plus facile de faire cela?

Répondre

1

Apparemment juste le mauvais nom de propriété pour définir le parent. Essayez:

body['parents'] = [{'id': parentID}] 
+0

J'aurais dû repérer cela - les âges dépensés se gratter la tête en regardant ça! Super, merci pour l'aide, qui a fait l'affaire :) – Cian

Questions connexes