Работа с файлами

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

Для работы с файлами применяется класс 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.

Свойство файлов в Universal Windows Platform
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850