How do I programmatically locate my Google Drive folder using C#?

前端 未结 2 1308
眼角桃花
眼角桃花 2020-12-06 00:28

Similar question as here. Just for Google Drive instead of Dropbox:

How do I programmatically locate my Google Drive folder us

2条回答
  •  渐次进展
    2020-12-06 00:36

    I personally think, the best way is to access the same file through SQLite3.

    string dbFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Google\\Drive\\sync_config.db");
    if (!File.Exists(dbFilePath))
        dbFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Google\\Drive\\user_default\\sync_config.db");
    
    string csGdrive = @"Data Source="+ dbFilePath + ";Version=3;New=False;Compress=True;";                
    SQLiteConnection con = new SQLiteConnection(csGdrive);
    con.Open();
    SQLiteCommand sqLitecmd = new SQLiteCommand(con);
    
    //To retrieve the folder use the following command text
    sqLitecmd.CommandText = "select * from data where entry_key='local_sync_root_path'";
    
    SQLiteDataReader reader = sqLitecmd.ExecuteReader();
    reader.Read();
    //String retrieved is in the format "\\?\" that's why I have used Substring function to extract the path alone.
    Console.WriteLine("Google Drive Folder: " + reader["data_value"].ToString().Substring(4));
    con.Dispose();
    

    You can get the SQLite library for .Net from here. Also add reference to System.Data.SQLite and include it in your project to run the above code.

    To retrieve the user, relpace entry_key='user_email' from the above code

提交回复
热议问题