c# - 获取用户为其 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:驱动器。
解决方案
您无法直接获取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";
}
}
推荐阅读
- selenium-webdriver - 将 Selenium Webdriver 中的当前时间与 Java 进行比较的断言
- python - 使用字典中的整数类型键进行字符串格式化在 Python 2 中返回 KeyError,适用于字符串类型键
- java - RESTAssured 禁用 URL 编码无法正常工作
- c# - 自动完成搜索框的 C# LINQ Contains() 查询很慢
- sql-server - 根据另一个表更新一个表中的数据
- unit-testing - 当我通过 $request->route('whatever') 访问 uri 参数时,Lumen phpunit 获取请求失败并给出 500
- python-3.x - 我可以使用装饰器修补对象方法吗
- node.js - node.js:无法自动增加数组中的字段
- javascript - 如何在 React.js 和 Redux 中使用 HOC 重构这个组件?
- c# - 在水晶报表中导航到下一页时如何隐藏输入参数值?