2017-08-08 138 views
0

我想驗證文件是否存在與谷歌驅動器與vb.net,文件路徑是在子文件夾中。我創建了存檔文件方法,其中我列出子文件夾和列表文件並使用測試,但始終countfile = 0。 這是existfile方法代碼子文件夾中的現有文件谷歌驅動器

Public Function existfile(v As String) As String 
    Dim page As String = "" 
    Dim req = Service.Files.List() 
    req.Q = "mimeType = 'application/vnd.google-apps.file' and trashed = false " 
    req.Spaces = "drive" 
    req.Fields = "nextPageToken, items(id, title)" 
    req.PageToken = page 
    Dim result = req.Execute() 
    ' sous doc 
    Dim ref = Service.Files.List() 
    ref.Q = "mimeType = 'application/vnd.google-apps.folder' and trashed = false " 
    Dim fo = ref.Execute() 

    'récuprer la reference (ID) du dossier existant , sinon la fonction retourne false en cas d'inexistance' 
    Const a As String = "false" 
    For Each listf In fo.Items 
     For Each test In result.Items 
      If (test.Title = v) Then 
       Return (test.Id) 
      End If 
     Next 
    Next 
    Return (a) 
End Function 

第一對每個爲列表的文件夾,並且所述第二對列表文件已經存在,但result.item始終爲0

文件路徑下的子文件夾,並且該子文件夾位於大文件夾下

回答

1

您可能需要檢查此.NET Quickstart,該文件使用Files.List來列出Google雲端硬盤上的文件。

// Define parameters of request. 
FilesResource.ListRequest listRequest = service.Files.List(); 
listRequest.PageSize = 10; 
listRequest.Fields = "nextPageToken, files(id, name)"; 

// List files. 
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute() 
     .Files; 
Console.WriteLine("Files:"); 
if (files != null && files.Count > 0) 
{ 
    foreach (var file in files) 
    { 
      Console.WriteLine("{0} ({1})", file.Name, file.Id); 
    } 
} 
else 
{ 
    Console.WriteLine("No files found."); 
} 
Console.Read(); 

附加參考:Google Drive API - Check if file exists by file ID

+0

謝謝你,你的代碼的搜索在谷歌文件中的文件夾或子文件夾不開車(我的意思是永遠的結果是沒有找到文件)。 我找到了一個解決方案,我用了2個foreach,第一個用於列出驅動器中存在的所有文件夾,下一個用於列出文件夾中的所有文件,然後我使用了一個if測試,結果它工作正常。 –

相關問題