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

时间:2016-10-10 00:15:55

标签: c# uwp windows-10-universal

我一直在寻找一段时间,并没有通过MSDN资源和其他人找到太多帮助。

我的困境很简单:我的应用需要一个基本目录到Downloads文件夹。我知道DownloadsFolder课程,但目前不符合我的需要。

如何在Windows Universal App中获取当前用户的下载文件夹路径?

4 个答案:

答案 0 :(得分:2)

这就是你需要的吗?

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

这将导致

  

C:\ Users \用户名\下载

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

应用程序的DownloadsFolder现在默认为带有以应用程序名称命名的用户的Downloads目录的文件夹(实际上,应用程序名称文件夹只是指向以Package Family Name命名的文件夹的链接) 为了获得文件夹名称,我使用以下技巧(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)