Steven Floyd
Steven Floyd

Reputation: 353

UWP - Get path to user download folder

I have been looking for a little while now and am not finding much help via MSDN resources and others.

My predicament is simple: my app needs a base directory to the Downloads folder. I am aware of the DownloadsFolder class however that is not suiting my needs currently.

How do I get the current user's Download folder path in a Windows Universal App?

Upvotes: 4

Views: 13808

Answers (4)

Nepaluz
Nepaluz

Reputation: 707

The DownloadsFolder for an app now defaults to a folder withing the user's Downloads directory named after the app name (in actual fact the app name folder is simply a link to a folder named after the Package Family Name) To get the folder name, I used the following hack (vb) to first create a dummy file in the UWP app's DownloadsFolder then using .NET code to get the directory name, and finally deleting the dummy file.

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

Upvotes: 0

trueCresc
trueCresc

Reputation: 141

Use Windows.Storage.UserDataPaths to get the path of user's download folder.

string downloadsPath = UserDataPaths.GetDefault().Downloads;
  • This method is introduced in build 16232, so clients with RS3(1709) or later will be able to run it.
  • You shouldn't obtain downloads folder path using LocalFolder, which might result in wrong folder when the user changed the default location for it.

Upvotes: 14

MC Qu
MC Qu

Reputation: 77

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

Upvotes: 4

GeralexGR
GeralexGR

Reputation: 3592

Is that what you need?

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

This will result

C:\Users\username\Downloads

Upvotes: 2

Related Questions