private static void DownloadEachFile(IList<ChildReference> cl, DriveService ds, System.IO.StreamWriter w, String path = "") { Parallel.ForEach(cl, child =>//foreach (ChildReference child in cl) { File f = ds.Files.Get(child.Id).Execute(); if (f.IsFolder()) { System.IO.Path.Combine(DriveFolder, path, f.Title).CreateDir(); DownloadEachFile(ds.GetAllChildren(f), ds, w, System.IO.Path.Combine(path, f.Title)); } else f.DownloadFile(ds, System.IO.Path.Combine(DriveFolder, path), w); }); }
public static void UpdateDriveFiles() { UserCredential credential; var stream = new System.IO.FileStream("client_secret.json", System.IO.FileMode.Open, System.IO.FileAccess.Read); string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); credPath = System.IO.Path.Combine(credPath, ".credentials"); credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; stream.Close(); var ds = new DriveService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); System.IO.StreamWriter w = new System.IO.StreamWriter(@"OutputFile_DriveDownload.txt"); w.WriteLine("Files:"); DownloadEachFile(ds.GetAllChildren("root"), ds, w); w.Close(); MessageBox.Show("Download of Google Drive Files Complete", "Keith Desktop", MessageBoxButtons.OK, MessageBoxIcon.Information); }