UWP - 获取用户下载文件夹的路径

UWP - Get path to user download folder

我已经找了一段时间了,但没有通过 MSDN 资源和其他资源找到太多帮助。

我的困境很简单:我的应用程序需要一个基本目录到下载文件夹。我知道 DownloadsFolder class 但这目前不适合我的需要。

如何在 Windows 通用应用程序中获取当前用户的下载文件夹路径?

这是你需要的吗?

string localfolder = ApplicationData.Current.LocalFolder.Path;
var array = localfolder.Split('\');
var username = array[2];
string downloads = @"C:\Users\" + username + @"\Downloads";

这将导致

C:\Users\username\Downloads

System.Environment.ExpandEnvironmentVariables("%userprofile%/downloads/")

使用Windows.Storage.UserDataPaths获取用户下载文件夹的路径。

string downloadsPath = UserDataPaths.GetDefault().Downloads;
  • 此方法是在 build 16232 中引入的,因此具有 RS3(1709) 或更高版本的客户端将能够 运行 它。
  • 您不应该使用 LocalFolder 获取下载文件夹路径,这可能会导致用户 changed the default location for it.
  • 时文件夹错误

应用程序的 DownloadsFolder 现在默认为一个文件夹,其中包含以应用程序名称命名的用户下载目录(实际上,应用程序名称文件夹只是一个 link 到以以下名称命名的文件夹Package Family Name) 为了获取文件夹名称,我使用了以下 hack (vb) 首先在 UWP 应用程序的 DownloadsFolder 中创建一个虚拟文件,然后使用 .NET 代码获取目录名称,最后删除该虚拟文件。

Dim o As StorageFile = Await DownloadsFolder.CreateFileAsync("dummy.txt", CreationCollisionOption.GenerateUniqueName)
Dim dirName Ss String = Path.GetDirectoryName(o.Path)
Await o.DeleteAsync(StorageDeleteOption.PermanentDelete)