#c# #uwp #windows-10-universal
#c# #uwp #windows-10-универсальный
Вопрос:
Я уже некоторое время ищу и не нахожу большой помощи через ресурсы MSDN и другие.
Мое затруднительное положение простое: моему приложению нужен базовый каталог для папки Downloads. Однако я знаю о DownloadsFolder
классе, который в настоящее время не соответствует моим потребностям.
Как мне получить путь к папке загрузки текущего пользователя в универсальном приложении Windows?
Комментарии:
1.
DownloadsFolder is not suiting my needs
итак, что именно вы ищете?
Ответ №1:
Используется Windows.Storage.UserDataPaths
для получения пути к папке загрузки пользователя.
string downloadsPath = UserDataPaths.GetDefault().Downloads;
- Этот метод представлен в сборке 16232, поэтому клиенты с RS3 (1709) или более поздней версии смогут его запустить.
- Вы не должны получать путь к папке загрузки с помощью LocalFolder, что может привести к неправильной папке, когда пользователь изменил для нее местоположение по умолчанию.
Комментарии:
1. Это более надежный ответ!
Ответ №2:
System.Environment.ExpandEnvironmentVariables("%userprofile%/downloads/")
Ответ №3:
Это то, что вам нужно?
string localfolder = ApplicationData.Current.LocalFolder.Path;
var array = localfolder.Split('\');
var username = array[2];
string downloads = @"C:Users" username @"Downloads";
Это приведет
C:UsersusernameDownloads
Комментарии:
1. Я полагал, что это решение, но не был уверен, не просматривал ли я фреймворк или класс в NETCore, которые уже будут предоставлены. Спасибо!
2. Это статическое решение с плохой практикой. Это зависит от того, что файловая система не меняется, это более элегантно: UserDataPaths . getDefault(). Загрузки
Ответ №4:
DownloadsFolder
Для приложения теперь по умолчанию используется папка, содержащая каталог загрузок пользователя, названный в честь имени приложения (на самом деле папка с именем приложения — это просто ссылка на папку, названную в честь Package Family Name
) Чтобы получить имя папки, я использовал следующий хак (vb), чтобы сначала создать фиктивный файл взатем используется папка DownloadsFolder приложения UWP.ЧИСТЫЙ код для получения имени каталога и, наконец, удаления фиктивного файла.
Dim o As StorageFile = Await DownloadsFolder.CreateFileAsync("dummy.txt", CreationCollisionOption.GenerateUniqueName)
Dim dirName Ss String = Path.GetDirectoryName(o.Path)
Await o.DeleteAsync(StorageDeleteOption.PermanentDelete)