首页 文章

在UWP应用程序中使用SHGetKnownFolderPath是违规的吗?

提问于
浏览
0

在我的UWP应用程序中,为了获取用户下载文件夹的路径,我导入 Shell32.dll 并使用下载文件夹 "{374DE290-123F-4565-9164-39C4925E467B}" 的shell文件夹值调用方法SHGetKnownFolderPath(如Windows 10 User Shell Folders Restore Default Paths中所述) .

现在我的问题是,上述获取文件夹路径的方式是否违反任何UWP推荐?我的应用程序是否会通过Microsoft商店发布的认证?或者会在这个问题的答案中提到它被拒绝 - How to access registry key in a UWP app?

2 回答

  • 2

    更一般的答案:您可以使用UserDataPaths class替代Windows 10中的 SHGetKnownFolderPath .

  • 1

    要在uwp中使用下载文件夹,可以使用Windows.Storage Api . 如果要在下载文件夹中创建文件,可以使用以下操作 .

    StorageFile sf = await DownloadsFolder.CreateFileAsync("testMarker");
    

    你可以通过上面的文件获得 DownloadsFolder 的路径 . 但是您无法直接使用路径访问该文件 .

    StorageFile sf = await DownloadsFolder.CreateFileAsync("testMarker");
    ArrayList numbers = new ArrayList(sf.Path.Split(new char[] { '\\' }));
    numbers.RemoveRange(numbers.Count - 2, 2);
    var downloadPath = string.Join("\\", numbers.ToArray());
    

    SHGetKnownFolderPath 在uwp中不支持,但你可以在桌面桥应用程序中使用它,你可以在你的桌面应用程序到UWP应用程序之前调用任何方法 .

相关问题