# Programmatisch den Dropbox-Ordner ermitteln

**URL:** <https://entwicklergate.de/t/programmatisch-den-dropbox-ordner-ermitteln/71>\
**Category:** Entwicklung\
**Tags:** file, net, csharp\
**Created:** [27. März 2015 um 07:51 UTC](https://entwicklergate.de/t/programmatisch-den-dropbox-ordner-ermitteln/71 "2015-03-27T07:51:52Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![UweKeim](https://entwicklergate.de/user_avatar/entwicklergate.de/uwekeim/32/432_2.png) [@UweKeim](https://entwicklergate.de/u/UweKeim)\
**Post date:** [27. März 2015 um 07:51 UTC](https://entwicklergate.de/t/programmatisch-den-dropbox-ordner-ermitteln/71/1 "2015-03-27T07:51:52Z")

</div>

In einer [CS-Script](http://entwicklergate.de/t/cs-script-ohne-installation-nutzen/64)-Datei wollte ich Dateien in meinem _lokalen_ [Dropbox](https://www.dropbox.com)-Ordner speichern.

Also nicht per OAuth über die Dropbox-API zugreifen, sondern einfach eine lokale Kopieraktion im Dateisystem.

Um herauszubekommen, wo dieser Ordner auf meinem lokalen System liegt, habe ich [auf Stack Overflow folgenden Code](http://stackoverflow.com/q/9660280/107625) gefunden:

```cs
private static string getDropBoxFolderPath()
{
    var appDataPath = Environment.GetFolderPath(
                          Environment.SpecialFolder.ApplicationData);

    var jsonPath = Path.Combine(appDataPath, @"Dropbox\info.json");

    if (File.Exists(jsonPath))
    {
        var json = File.ReadAllText(jsonPath, Encoding.UTF8);
        var j = JObject.Parse(json);

        var value = j.SelectToken(@"$['personal']['path']");
        if (value != null && !string.IsNullOrWhiteSpace(value.Value<string>()))
        {
            var path = value.Value<string>();
            if (Directory.Exists(path)) return path;
        }
    }

    // --

    var dbPath = Path.Combine(appDataPath, "Dropbox\\host.db");

    if (!File.Exists(dbPath)) return null;

    var tmp = dbPath + Guid.NewGuid();
    File.Copy(dbPath, tmp);

    var lines = File.ReadAllLines(tmp);
    var dbBase64Text = Convert.FromBase64String(lines[1]);
    var folderPath = Encoding.ASCII.GetString(dbBase64Text);

    File.Delete(tmp);

    return folderPath.TrimEnd('\\');
}

```

Es wird also aus einer Dropbox-Konfigurations-Datei der eigentliche Pfad gelesen. Zur Sicherheit, damit ich nicht versehentlich die „host.db“-Datei verändere oder sperre, kopiere ich sie lokal und lösche sie dann wieder.

Siehe dazu auch mein Posting „[Programmatisch den OneDrive-Ordner ermitteln](http://entwicklergate.de/t/programmatisch-den-onedrive-ordner-ermitteln/79)“ und mein Artikel „[Programmatisch den Google-Drive-Ordner ermitteln](http://entwicklergate.de/t/programmatisch-den-google-drive-ordner-ermitteln/80)“.
