如何使用 C# 以编程方式定位我的 Dropbox 文件夹? * 注册表? * 环境变量? *等等……
最佳答案
更新的解决方案
Dropbox 现在提供一个 info.json 文件,如下所述:https://www.dropbox.com/en/help/4584
如果您不想处理解析 JSON,您可以简单地使用以下解决方案:
var infoPath = @"Dropbox\info.json";
var jsonPath = Path.Combine(Environment.GetEnvironmentVariable("LocalAppData"), infoPath);
if (!File.Exists(jsonPath)) jsonPath = Path.Combine(Environment.GetEnvironmentVariable("AppData"), infoPath);
if (!File.Exists(jsonPath)) throw new Exception("Dropbox could not be found!");
var dropboxPath = File.ReadAllText(jsonPath).Split('\"')[5].Replace(@"\\", @"\");
如果您想解析 JSON,可以按如下方式使用 JavaScripSerializer:
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var dictionary = (Dictionary < string, object>) serializer.DeserializeObject(File.ReadAllText(jsonPath));
var dropboxPath = (string) ((Dictionary < string, object> )dictionary["personal"])["path"];
已弃用的解决方案:
您可以阅读 dropbox\host.db 文件。它是位于 AppData\Roaming 路径中的 Base64 文件。使用这个:
var dbPath = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Dropbox\\host.db");
var dbBase64Text = Convert.FromBase64String(System.IO.File.ReadAllText(dbPath));
var folderPath = System.Text.ASCIIEncoding.ASCII.GetString(dbBase64Text);
希望对您有所帮助!
关于c# - 如何使用 C# 以编程方式定位我的 Dropbox 文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660280/