在我的UWP应用中,要获取用户的downloads文件夹的路径,我将导入Shell32.dll
并调用方法SHGetKnownFolderPath,其中包含downloads文件夹"{374DE290-123F-4565-9164-39C4925E467B}"
的shell文件夹值(如Windows 10 User Shell Folders Restore Default Paths中提到)。
现在我的问题是,以上获取文件夹路径的方式是否违反了任何UWP建议?我的应用程序将通过在Microsoft Store中发布的认证吗?还是会如该问题的答案中所述-How to access registry key in a UWP app?
被拒绝答案 0 :(得分:2)
一个更一般的答案:在Windows 10中,您可以使用UserDataPaths
class代替SHGetKnownFolderPath
。
答案 1 :(得分: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中不受支持,但是您可以在桌面桥应用程序中使用它,可以在将convert桌面应用程序转换为UWP应用程序之前调用任何方法。