Получить местоположение загрузки по умолчанию, заданное пользователем для его ПК - PullRequest
0 голосов
/ 27 сентября 2018

На моем ПК я изменил папку загрузок по умолчанию с «C: \ Users \ MyProfile \ Downloads» на «D: \ Downloads».

Теперь в моем приложении UWP я могучтобы сохранить файлы, которые пользователь загружает из моего приложения, в папке «D: \ Downloads», используя класс Windows.Storage API DownloadsFolder .Но мне нужно отобразить путь, куда загружаются файлы, пользователю.

Я не могу выбрать местоположение, которое пользователь установил в качестве местоположения загрузки по умолчанию в случае, как я уже сказал выше (с c: диск на d: диск).

Есть ли способ проверить, установил ли пользователь другое местоположение для своих загрузок и, если да, получить путь к папке?

Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\Downloads")

Приведенный выше код всегда дает "C: \ Users"\ MyProfile \ Загрузки».Но я изменил место загрузки на диск D:

1 Ответ

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

Вы не можете получить путь DownloadsFolder, который пользователь установил на устройстве напрямую.Вы можете получить путь к папке загрузки только по свойству StorageFile или StorageFolder Path, где вы их создали в DownloadsFolder.

. Вы можете сделать трюк, чтобы получить DownloadsFolderпуть по шагам: Создайте файл в DownloadsFolder => Получить путь к файлу и сохраните путь => Удалить файл.

private async Task<string> GetDownloadsFolderPath()
{
    StorageFile newFile = await DownloadsFolder.CreateFileAsync("mytestfile");
    if (newFile != null)
    {
        //You maybe need to operate the DownloadFolderPath string to subtract the folder name of your app.
        string DownloadFolderPath = newFile.Path;
        await newFile.DeleteAsync();
        return DownloadFolderPath;
    }
    else
    {
        return "There is an error to get path";
    }
}
...