Определить, установлен ли Dropbox в приложении UWP - PullRequest
0 голосов
/ 21 ноября 2018

Во время первого запуска моего приложения я хотел бы дать пользователю возможность предоставить доступ к определенным приложениям синхронизации, таким как Dropbox.

Есть ли способ, которым мое приложение UWP может обнаружить, что Dropbox установлен?Затем я мог бы предложить пользователю предоставить доступ к этой папке через FolderPicker ....

1 Ответ

0 голосов
/ 21 ноября 2018

Определение того, установлен ли Dropbox, невозможно из приложения UWP.Или, по крайней мере, вероятно, не рекомендуемый метод доступа к Dropbox из приложения UWP.

В Windows местоположение папки Dropbox пользователя хранится в %localappdata%\Dropbox\info.json, поэтому в приложениях WPF / WinForms / Console вы можете использоватьчто-то вроде: -

using Newtonsoft.Json.Linq;
using System;
using System.IO;

public static class Dropbox
{
    private static string _Path;
    public static string Path
    {
        get { return _Path ?? (_Path = GetPath()); }
    }

    static string GetPath()
    {
        var appDataPath = Environment.GetFolderPath(
                                       Environment.SpecialFolder.LocalApplicationData);
        var filePath = System.IO.Path.Combine(appDataPath, @"Dropbox\info.json");

        dynamic dropboxInfo = JObject.Parse(File.ReadAllText(filePath));

        string folderPath = dropboxInfo.personal.path;

        return folderPath;
    }
}

Из-за отсутствия доступа к %localappdata% этот метод становится первым препятствием в приложении UWP.

Это оставляет вас либо запрашивающим пользователя для Dropboxрасположение папки, не зная, установлена ​​ли она или использует Dropbox SDK для подключения к Dropbox и доступа к файлам независимо от копии, уже имеющейся у пользователя локально через клиент Dropbox.

...