在 UWP 应用程序中使用 SHGetKnownFolderPath 是否违规?
Is it a violation to use SHGetKnownFolderPath in a UWP app?
在我的 UWP 应用中,为了获取用户下载文件夹的路径,我正在导入 Shell32.dll
并调用方法 SHGetKnownFolderPath with the shell folder value for downloads folder "{374DE290-123F-4565-9164-39C4925E467B}"
(as mentioned in Windows 10 User Shell Folders Restore Default Paths).
现在我的问题是,上述获取文件夹路径的方式是否违反了任何 UWP 建议?我的应用程序会通过微软商店发布的认证吗?还是会像这个问题的回答里说的那样被拒绝-
要在 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 应用程序之前调用任何方法。
更一般的答案:您可以使用 UserDataPaths
class 替代 Windows 10 中的 SHGetKnownFolderPath
。
在我的 UWP 应用中,为了获取用户下载文件夹的路径,我正在导入 Shell32.dll
并调用方法 SHGetKnownFolderPath with the shell folder value for downloads folder "{374DE290-123F-4565-9164-39C4925E467B}"
(as mentioned in Windows 10 User Shell Folders Restore Default Paths).
现在我的问题是,上述获取文件夹路径的方式是否违反了任何 UWP 建议?我的应用程序会通过微软商店发布的认证吗?还是会像这个问题的回答里说的那样被拒绝-
要在 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 中不受支持,但您可以在桌面桥接应用程序中使用它,您可以在将桌面应用程序
更一般的答案:您可以使用 UserDataPaths
class 替代 Windows 10 中的 SHGetKnownFolderPath
。