首页 > 解决方案 > 获取用户为其 PC 设置的默认下载位置

问题描述

在我的 PC 中,我已将默认下载文件夹从“C:\Users\MyProfile\Downloads”更改为“D:\Downloads”。

现在,在我的 UWP 应用程序中,我可以使用Windows.Storage API DownloadsFolder类将用户从我的应用程序下载的文件保存在“D:\Downloads”中。但我需要向用户显示下载文件的路径。

在我上面所说的情况下,我无法获取用户设置为默认下载位置的位置(从 c: 驱动器到 d: 驱动器)。

有没有办法检查用户是否为他的下载设置了不同的位置,如果是,获取文件夹路径?

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

上面的代码总是给出“C:\Users\MyProfile\Downloads”。但我已将下载位置更改为 D:驱动器。

标签: c#uwpwin-universal-appwindows-10-universal

解决方案


您无法直接获取DownloadsFolder用户在设备上设置的路径。您只能通过StorageFile您在.StorageFolderPathDownloadsFolder

您可以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";
    }
}

推荐阅读