Для работы с файлами применяется класс StorageFile. С помощью его методов мы можем управлять файлами:
CopyAsync(): создает копию текущего файла
DeleteAsync(): удаляет текущий файл
GetBasicPropertiesAsync(): возвращает основные свойства файла (размер, дата изменения)
GetParentAsync(): возвращает папку файла
MoveAsync(): перемещает файл в новую папку
RenameAsync(): переименовывает файл
CreateFolderAsync(): создает новую папку
OpenAsync(): открывает файл, получая на него поток
OpenReadAsync(): открывает файл для чтения
OpenStreamForReadAsync(): открывает файл для чтения
OpenStreamForWriteAsync(): открывает файл для записи
Свойства StorageFile позволяют получить детальную информацию о файле:
Attributes: возвращает атрибуты файла
ContentType: возвращает MIME-тип содержимого файла
DateCreated: дата создания файла
DisplayName: отображаемое название файла
FileType: расширение файла
Name: стандартное название
Path: полный путь к файлу
Properties: свойства файла
Здесь особо следует отметить свойство Properties, которое позволяет получить набор дополнительных свойств файла, причем этот набор может варьироваться в зависимости от типа файла. Например, выведем информацию о файлах из папки Видео. Для вывода в коде xaml определим TextBlock:
<Page x:Class="FoldersApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:FoldersApp" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Loaded="Page_Loaded"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <TextBlock x:Name="filesList" /> </Grid> </Page>
А в обработчике загрузки страницы в файле кода выведем информацию о файлах из папки Видео:
using System; using System.Collections.Generic; using Windows.Storage; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; namespace FoldersApp { public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } private async void Page_Loaded(object sender, RoutedEventArgs e) { StorageFolder folder = KnownFolders.VideosLibrary; IReadOnlyList<StorageFile> files = await folder.GetFilesAsync(); foreach (StorageFile file in files) { filesList.Text+=$"{file.Name}\n"; var props = await file.GetBasicPropertiesAsync(); filesList.Text += $"Дата изменения: {props.DateModified} \n"; filesList.Text += $"Размер: {props.Size} \n\n"; } } } }
Соответственно, чтобы получить доступ к файлам в папке Видео, нам надо включить пункт VideosLibrary в разделе Capabilities в файле манифеста Package.appxmanifest.