在我的电脑中,我已将默认下载文件夹从"C:\Users\MyProfile\Downloads"更改为"D:\Downloads"。
现在,在我的 UWP 应用中,我能够使用 Windows.Storage API DownloadsFolder 类将用户从我的应用下载的文件保存在"D:\Downloads"中。但是我需要向用户显示下载文件的路径。
如上所述,我无法获取用户设置为默认下载位置的位置(从 c: 驱动器到 d: 驱动器(。
有没有办法检查用户是否为他的下载设置了不同的位置,如果是,则获取文件夹路径?
Environment.ExpandEnvironmentVariables(@"%USERPROFILE%Downloads")
上面的代码总是给出"C:\Users\MyProfile\Downloads"。但是我已经将下载位置更改为D:驱动器。
您无法直接获取用户在设备上设置的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";
}
}