Специальные папки

Последнее обновление: 24.02.2016

Кроме описанных в прошлой теме папок, которые доступны разработчику, мы также можем использовать еще ряд папок, которые являются специальными и предназначены для хранения файлов пользователя. Доступ к ним можно получить через свойства класса Windows.Storage.KnownFolders:

  • DocumentsLibrary: представляет папку Documents (Документы)

  • HomeGroup: каталог HomeGroup

  • MediaServerDevices: папка Media Server Devices

  • MusicLibrary: папка Music (Музыка)

  • PicturesLibrary: папка Pictures (Изображения)

  • RemovableDevices: папка Removable Devices

  • VideosLibrary: папка Videos (Видео)

  • SavedPictures: папка для сохраненных скриншотов

Но просто так обратиться к этим папкам, например, написав:

StorageFolder folder = KnownFolders.PicturesLibrary;

мы не можем. Чтобы с ними работать, нам надо изменить файл манифеста.

Итак, откроем файл Package.appxmanifest и перейдем на вкладку Capabilities. И здесь нам надо отметить те специальные папки, к которым мы будем обращаться:

Capabilities в Package.appxmanifest в UWP

В данном случае я отметил пункт "Pictures Library", тем самым сделав доступной для моего кода папку изображений. И теперь я могу к ней обращаться:

private async void Page_Loaded(object sender, RoutedEventArgs e)
{
    StorageFolder folder = KnownFolders.PicturesLibrary;
    IReadOnlyList<StorageFile> files = await folder.GetFilesAsync();
            
    foreach (StorageFile file in files)
        filesList.Items.Add(file.Name);
}
Получение папки изображений в UWP

Папка загрузок

Еще одна папка, которую мы можем использовать, - это папка загрузок или Downloads. Для работы с ней предназначен специальный класс DownloadsFolder. Однако возможности этого класса ограничены преимущественно функциональностью записи. Так, нам доступны следующие методы:

  • CreateFileAsync(): создает файл в папке загрузок

  • CreateFileForUserAsync(): создает файл для определенного пользователя

  • CreateFolderAsync(): создает папку

  • CreateFolderForUserAsync(): создает папку для определенного пользователя

Например, создание новой папки и файла в папке загрузок:

// создание папки Data
StorageFolder newFolder = await DownloadsFolder.CreateFolderAsync("Data");
// создание файла file.txt
StorageFile newFile = await DownloadsFolder.CreateFileAsync("file.txt");
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850