Является ли нарушением использование SHGetKnownFolderPath в приложении UWP? - PullRequest
0 голосов
/ 28 сентября 2018

В моем приложении UWP, чтобы получить путь к папке загрузок пользователя, я импортирую Shell32.dll и вызываю метод SHGetKnownFolderPath со значением папки оболочки для папки загрузок "{374DE290-123F-4565-9164-39C4925E467B}" (как упомянуто в Папки пользовательских оболочек Windows 10 восстанавливают пути по умолчанию ).

Теперь мой вопрос: нарушает ли приведенный выше способ получения пути к папке какие-либо рекомендации UWP?Пройдет ли мое приложение сертификацию для публикации в магазине Microsoft?Или он будет отклонен, как указано в ответе на этот вопрос - Как получить доступ к разделу реестра в приложении UWP?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Более общий ответ: Вы можете использовать UserDataPaths класс в качестве замены SHGetKnownFolderPath в Windows 10.

0 голосов
/ 30 сентября 2018

Для использования папки загрузки в 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.

...