Reputation: 353
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
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
Reputation: 141
Use Windows.Storage.UserDataPaths
to get the path of user's download folder.
string downloadsPath = UserDataPaths.GetDefault().Downloads;
Upvotes: 14
Reputation: 77
System.Environment.ExpandEnvironmentVariables("%userprofile%/downloads/")
Upvotes: 4
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