c# - 如何使用 C# 以编程方式定位我的 Dropbox 文件夹?

标签 c# dropbox

如何使用 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/

相关文章:

c# - 占位符控件和对齐子控件

java - 如何在 Android 中从/向 Dropbox 导出导入 SQLite 数据库?

javascript - 如何使用 Javascript 将文件的各个部分并行上传到 Dropbox

swift - Dropbox SDK 请求错误

c# - 打印文档时的页面范围问题

c# - 如何序列化包含其他类对象的类(递归序列化?)

Dropbox 和 pyinotify

windows - 如何在 Windows 的 Powershell 中获取 Dropbox 文件夹

c# - 如何在WP7上创建流畅的移动?

c# - asp.Net 中 DateTime 的默认时区