Опубликован: 22.12.2012 | Доступ: свободный | Студентов: 482 / 20 | Длительность: 07:20:00
Лекция 14:

Лабораторная работа

< Лекция 13 || Лекция 14: 1234 || Лекция 15 >

Лабораторная работа №4

Тема

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

Задание

Для указанного ваpианта pазpаботать пpогpамму, работающую с файловой системой.

Исполнение

Изучить систему использования информации из файлов. Отладить и оттестировать составленное приложение

Цель

Формирование навыков разработки приложений WinRT

Методические указания

Проанализируйте задание и определите необходимые файлы для своего приложения.

Определите разметку документа, например

<Window x:Class="WorkWithFiles.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="313" Width="345">
    <Grid>
        <TextBox Height="23" HorizontalAlignment="Left" Margin="12,12,0,0"
        Name="textBox1" VerticalAlignment="Top" Width="302" Text="D:\File.txt" />
        <Button Content="Создать файл" Height="23" HorizontalAlignment="Left" 
        Margin="12,41,0,0" Name="Create" VerticalAlignment="Top" Width="302" Click="Create_Click" />
        <Button Content="Удалить файл" Height="23" HorizontalAlignment="Left" 
        Margin="12,70,0,0" Name="Delete" VerticalAlignment="Top" Width="302" Click="Delete_Click" />
        <Button Content="Простое построчное считывание" Height="23" 
        HorizontalAlignment="Left" Margin="12,128,0,0" Name="ReadLines" 
        VerticalAlignment="Top" Width="302" Click="ReadLines_Click" />
        <Button Content="Копирование файла" Height="23" HorizontalAlignment="Left" 
        Margin="12,99,0,0" Name="CopyFile" VerticalAlignment="Top" Width="302" 
        Click="CopyFile_Click" />
        <Button Content="Получить все txt файлы в директории" Height="23" 
        HorizontalAlignment="Left" Margin="12,157,0,0" Name="GetFiles" 
        VerticalAlignment="Top" Width="302" Click="GetFiles_Click" />
        <Button Content="Запись в файл" Height="23" HorizontalAlignment="
        Left" Margin="12,186,0,0" Name="Write" VerticalAlignment="Top" 
        Width="302" Click="Write_Click" />
        <Button Content="Удалить все файлы из папки" Height="23" 
        HorizontalAlignment="Left" Margin="12,215,0,0" Name="DeleteAll" 
        VerticalAlignment="Top" Width="302" Click="DeleteAll_Click" />
        <Button Content="Получить всю информацию о файле" Height="23" 
        HorizontalAlignment="Left" Margin="9,244,0,0" Name="GetAllInformation" 
        VerticalAlignment="Top" Width="302" Click="GetAllInformation_Click" />
    </Grid>
</Window> 

Определите операции, необходимые для работы с файлами с файлами разрабатываемого приложения. Примеры реализации работы с файлами:

  1. Создание файла
    private void Create_Click(object sender, RoutedEventArgs e)
            {
                if (!System.IO.File.Exists(this.textBox1.Text))
                    try
                    {
                        System.IO.File.Create(this.textBox1.Text);
                    }
                    catch (System.IO.IOException ex)
                    {
                        MessageBox.Show(ex.Message, "Ошибка", 
                        MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                else
                    MessageBox.Show("Файл уже существует", "Ошибка", 
                    MessageBoxButton.OK, MessageBoxImage.Stop);
            }
  2. Удаление файла
    private void Delete_Click(object sender, RoutedEventArgs e)
            {
                if (System.IO.File.Exists(this.textBox1.Text))
                    try
                    {
                        System.IO.File.Delete(this.textBox1.Text);
                    }
                    catch (System.IO.IOException ex)
                    {
                        MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                else
                    MessageBox.Show("Файл не существует", "Ошибка", 
                    MessageBoxButton.OK, MessageBoxImage.Stop);
            }
  3. Чтение содержимого файла
    private void ReadLines_Click(object sender, RoutedEventArgs e)
            {
                // Считать файл можно сразу же, как одну строку
                try
                {
                    string text = System.IO.File.ReadAllText(this.textBox1.Text);
                    MessageBox.Show(text, "Полученный текст", MessageBoxButton.OK, 
                    MessageBoxImage.Exclamation);
                }
                catch (System.IO.IOException ex)
                {
                    MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
                    return;
                }

    */ - возможны и другие способы чтения содержимого файла.

  4. Копирование файла
    private void CopyFile_Click(object sender, RoutedEventArgs e)
            {
                string sourcePathFile = this.textBox1.Text; // Какой файл копируем
                string targetPathFile = @"D:\1.txt";        // Куда будем копировать
                if (System.IO.File.Exists(this.textBox1.Text))
                    try
                    {
                        System.IO.File.Copy(sourcePathFile, targetPathFile, true);
                    }
                    catch (System.IO.IOException ex)
                    {
                        MessageBox.Show(ex.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
                        return;
                    }
                else
                    MessageBox.Show("Файл не существует", "Ошибка", 
                    MessageBoxButton.OK, MessageBoxImage.Stop);
            }
  5. Запись в файл
    private void Write_Click(object sender, RoutedEventArgs e)
            {
                string[] lines = { "Раз", "Два", "Четыре" };
                try
                {
                    System.IO.File.WriteAllLines(this.textBox1.Text, lines);
                }
                catch (DirectoryNotFoundException dirNotFound)
                {
                    MessageBox.Show(dirNotFound.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Stop);
                }
Содержание отчета
  1. Задание к лабораторной работе
  2. Описание использования данных в приложениях WinRT
  3. Листинг пpиложения.
  4. Пример работы приложения.
  5. Вывод о проделанной работе.
Контрольные вопросы
  1. Что такое данные приложения?
  2. Какие операции над данными используются при выполнении приложения?
  3. Какие виды хранилищ данных существуют?
  4. Что такое локальные хранилища данных?
  5. Что такое перемещаемые хранилища данных?
  6. Что такое временные хранилища данных?
< Лекция 13 || Лекция 14: 1234 || Лекция 15 >