检测是否在UWP应用中安装了Dropbox

时间:2018-11-21 09:25:06

标签: uwp dropbox-sdk

在我的应用程序首次启动期间,我希望使用户能够授予对某些同步应用程序(如Dropbox)的访问权限。

我的UWP App有什么方法可以检测到Dropbox已安装? 然后,我可以提示用户通过FolderPicker提供对该文件夹的访问权限。...

1 个答案:

答案 0 :(得分:1)

无法通过UWP应用确定是否已安装Dropbox。或者,至少不是推荐的从UWP应用访问Dropbox的方法。

在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客户端在本地已有的任何副本访问文件。