2017-07-27 2 views
0

Je veux savoir si le dossier (sous-dossier) existe dans google drive ou non, après avoir cherché dans ce page, j'essaie de le faire, je crée une fonction booléenne qui retourne vrai si dossier existe.test si un dossier existe ou pas dans google drive

ici est un code de fonction booléenne

Public Function exist(v As String) As Boolean 
    Dim pag As String 
    Dim req = Service.Files.List() 
    req.Q = "application/vnd.google-apps.folder" 
    req.PageToken = pag 
    Dim result = req.Execute() 
    If (result.NextPageToken IsNot Nothing) Then 
     Return False 
    Else 
     Return True 
    End If 

End Function 

et voici comment je l'appelle

If (exist(dat_sauv.SelectedItem) = False) Then 
     MessageBox.Show("folder exist") 

    End If 

l'exception est

enter image description here

exception a declenched dans la méthode exist dans cette instruction

Dim résultat = req.Execute()

est ma méthode correcte ou non? pouvez-vous m'aider?

Répondre

2

Il y a deux problèmes avec votre code.

  1. requête incorrecte

Votre ligne req.Q = "application/vnd.google-apps.folder" devrait être

req.Q = "mimeType='application/vnd.google-apps.folder' and name = '"+v+"' and trashed=false" Vous avez probablement besoin de ranger le guillemets et les échappements (ne pas copier/coller et attendre à fonctionne la première fois)

  1. utilisation de nextPageToken

La présence du dossier ne sera pas indiquée par la présence de nextpageToken. Au lieu de cela, vous devez vérifier le tableau de fichiers dans la réponse pour les éléments> 0.

+0

merci, pour le premier, j'ajoute trashed = false mais le suivant, je ne comprends pas –

+0

1. pourquoi avez-vous ajouté trashed = false. Vous devriez utiliser la requête complète que je vous ai donnée. 2. Lisez la documentation pour comprendre ce que fait NextPageToken. Utilisez également la fonction "Essayer maintenant" sur https://developers.google.com/drive/v3/reference/files/list#try-it pour vous aider à comprendre comment cela fonctionne. – pinoyyid

+0

Ok, je vais essayer cette API dans mon code, j'ajoute req.Q = "mimeType = 'application/vnd.google-apps.folder' AND '" + v + "' et trashed = false" et j'utilise pour chaque boucle mais la même exécution au même endroit v est le nom du dossier –