Разработка приложения FileInfo по средствам среды программирования Microsoft Visual C#

Автор работы: Пользователь скрыл имя, 04 Мая 2013 в 09:59, курсовая работа

Описание работы

Требования к программному продукту:
Язык программирования – С++ (С#) с использованием API функций Win 32
Среда разработки – VisualC++, C++ Builder, C# (или другая, позволяющая создавать 32-разрядные Windows-приложения)
Интерфейс – оконное приложение, содержащее стандартные элементы управления (меню, кнопки, панели и т.п.)
Для всех приложений выполнить структурную обработку исключений (SEH).

Файлы: 1 файл

Пояснительная записка.doc

— 614.50 Кб (Скачать файл)

Действующие лица: Пользователь

Предусловия:

  1. Пользователь должен запустить программу.
  2. Пользователь должен выбрать желаемый файл.
  3. Пользователь должен нажать на кнопку «Атрибуты файла».
  4. Пользователь поставил/снял отметку рядом с атрибутом, который хочет установить/снять.

 

Основной поток:

  1. Программа сохраняет изменения.
  2. В зависимости от выбора пользователя программа сохраняет или отменяет изменения.

Альтернативные потоки: Нет.

Постусловия:

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

 

Описание расширяющего ВИ «Копировать»:

ВИ: Копировать файл

ID: 3

Краткое описание: Программа копирует файл в указанное пользователем место, так же он может создать новую папку для сохранения копия в ней.

Действующие лица: Пользователь

Предусловия:

  1. Пользователь должен запустить программу.
  2. Пользователь должен выбрать желаемый файл.
  3. Пользователь должен нажать кнопку «Копирование».
  4. Пользователь должен указать путь копирования или создать новую папку для копирования.

Основной поток:

  1. Программа копирует файл.

Альтернативные потоки:

4а. Создание новой папки

4а1. При нажатии кнопки копирование дополнительно появляется кнопка «Создать папку». Если пользователь создаёт папку и открывает её – файл копируется в новую папку

4б. Путь совпадает с текущим

4б1. В случае указания того местоположения, где находится файл в текущий момент – выводиться сообщение о том что такой файл уже существует и предлагает сделать выбор. «Продолжить» - продолжить работу программы без изменения, «Выход» - выход из приложения

 

 

 

 

Постусловия:

В указанном месте появляется копия  файла либо новые папки. Копируемый файл оказывается в новой папке только в том случае, если пользователь после создания папки для копирования выбирает именно её.

 

Описание ВИ Переместить:

ВИ: Перемещение файла

ID: 4

Краткое описание: Выполняется изменение местонахождения желаемого файла.

Действующие лица: Пользователь.

Предусловия:

    1. Пользователь должен запустить программу.
    2. Пользователь должен выбрать желаемый файл.
    3. Пользователь должен нажать кнопку «Переместить».
    4. Пользователь должен указать путь перемещения или создать новую папку для перемещения.

Основной поток:

1. Программа перемещает файл

Альтернативные потоки:

4а. Создание новой папки

4а1. При нажатии кнопки перемещение  дополнительно появляется кнопка  «Создать папку». Если пользователь  создаёт папку и открывает  её – файл перемещается в новую папку.

Постусловия:

В указанном месте появляется выбранный файл. Если пользователем была создана папка и выбрана – файл появляется в созданной папке. В исходном положении файла не будет.

 

 

 

Описание ВИ Переименовать:

ВИ: Переименование файла

ID: 5

Краткое описание: Выполняется изменение имени файла.

Действующие лица: Пользователь

 

Предусловия:

1. Пользователь должен запустить  программу.

2. Пользователь должен выбрать  желаемый файл.

3. Пользователь должен нажать  кнопку «Переименовать».

4. Пользователь должен указать  желаемое имя файла

Основной поток:

1. Переименование файла

Альтернативные потоки:

4а. Указание имени не имеющего  ни одного символа

4а1. Если указать имя, не содержащее  ни одного символа, программа  выведет сообщение о невозможности  такого переименования.

Постусловия:

У файла изменяется имя на указанное.

 

 

Описание ВИ Информация о *.txt-файле:

ВИ: Вывод дополнительной информации о *.txt-файле

ID: 5

Краткое описание: При нажатии кнопки «Информация о *.txt-файле» пользователю представляется информация о : количестве строк, слов, символов, символов без пробелов Действующие лица: Пользователь

Предусловия:

1. Пользователь должен запустить программу.

2. Пользователь должен выбрать желаемый файл с разрешением *.txt

3. Пользователь Должен нажать кнопку «Информация о *.txt-файле»

 

Основной поток:

1. Программа производит подсчет  количества строк, слов, символов, символов без пробелов

Альтернативные потоки: Нет

Постусловия:

Выводится окно информацией о количестве строк, слов, символов, символов без слов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Метод решения

В данной курсовой работе для получения информации о файле, изменения атрибутов, переименования, перемещения, копирования, вывода информации о *.txt-файле мы будем использовать библиотеки Net Framework. Так же можно использовать функции WinAPI, но мы этого делать не будем, из соображений упрощения разработки. К тому же считается что WinAPI – это “вчерашний день”

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Описание программы

3.1 Использование пространств имен Net Framework

  • System – cодержит классы, позволяющие сопоставлять коды URI с шаблонами URI и группами шаблонов URI.
  • System.Collections.Generic – содержит интерфейсы и классы, определяющие универсальные коллекции, которые позволяют пользователям создавать строго типизированные коллекции, обеспечивающие повышенную производительность и безопасность типов по сравнению с неуниверсальными строго типизированными коллекциями.
  • System.Drawing – содержит типы, поддерживающие базовые графические функции GDI+. Дочерние пространства имен поддерживают более сложные функции двухмерной и векторной графики, дополнительные функции обработки изображений, а также службы, связанные с печатью и типографикой. Дочернее пространство имен также содержит типы, которые расширяют логические и графические возможности пользовательского интерфейса во время разработки.
  • System.ComponentModel - содержит классы, реализующие поведение компонентов и элементов управления во время проектирования и выполнения. Данное пространство имен включает базовые классы и интерфейсы, предназначенные для реализации преобразователей атрибутов и типов, для привязки к источникам данных и для лицензирования компонентов.
  • System.Data - обеспечивает доступ к классам, которые представляют архитектуру ADO.NET. Архитектура ADO.NET позволяет создавать компоненты, эффективно работающие с данными из различных источников.
  • System.Text  – содержит типы для работы с кодировками символов и для управления строками. Дочернее пространство имен позволяет обрабатывать текст с использованием регулярных выражений.
  • System.Linq - содержит классы и интерфейсы, которые поддерживают запросы, использующие LINQ (Language-Integrated Query).
  • System.Windows.Forms – содержит классы для создания приложений Windows, которые позволяют наиболее эффективно использовать расширенные возможности пользовательского интерфейса, доступные в операционной системе Microsoft Windows.
  • System.IO – содержит типы, поддерживающие ввод и вывод, включая возможности чтения и записи данных в потоках, как синхронно, так и асинхронно, сжатия данных в потоках, создания и использования изолированных хранилищ, сопоставления файлов логическим адресным пространствам приложений, хранения различных объектов данных в одном контейнере, взаимодействия с использованием анонимных или именованных каналов, реализации пользовательского ведения журнала и обработки входящих и исходящих потоков данных в последовательных портах.

3.3 Использованные классы .NetFramework

В данном разделе будут перечислены  основные классы и функции .NetFramework которые использовались для разработки данного приложения. К информации о классе прилагается участок кода программы (некоторые из них с комментарием). А так же будут описаны статические методы и методы экземпляра, пространство имён где они находятся, их значения.

 

 

  • FileInfo – Класс FileInfo  предоставляет методы экземпляра для создания, открытия, удаления, переименования, копирования, перемещения, а так же добавления данных в файлы.

Открытие:

{

                fileinf = new FileInfo(openFileDialog1.FileName);

 

                update_fname_info(fileinf.Name);

 

                label2.Visible = true;

                label2.Text = "Информация о файле:\n"

                    + "Размер: "+fileinf.Length.ToString()+" байт.\n"

                    + "Создан:    "+fileinf.CreationTime.ToString()

                    + "\nИзменён: " + fileinf.LastWriteTime.ToString()

                    + "\nОткрыт:    " + fileinf.LastAccessTime.ToString();

 

 

Переименование:

     Form3 form_rename = new Form3(); //Создаём форму 3 - окно переименования

                form_rename.textBox1.Text = fileinf.Name;

                form_rename.ShowDialog(); //выводим форму

                if (form_rename.change_name == true) //проверяем, изменили имя файла или нет

                {

                    try

                    {

                        fileinf.MoveTo(fileinf.DirectoryName +@"\" +form_rename.textBox1.Text);

                        update_fname_info(fileinf.Name); //обновляем в программе название файла

                    }

Перемещение:

if (check_exists(fileinf.FullName))

            {

                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

                {

                    fileinf.MoveTo(folderBrowserDialog1.SelectedPath + @"\" + fileinf.Name);

                    MessageBox.Show("Файл перемещён в " + folderBrowserDialog1.SelectedPath.ToString());

                }

Копирование:

if (check_exists(fileinf.FullName))

            {

                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

                {

                    fileinf.CopyTo(folderBrowserDialog1.SelectedPath + @"\" + fileinf.Name);

                    MessageBox.Show("Файл скопирован в " + folderBrowserDialog1.SelectedPath.ToString());

 

 

  • TextReader – Представляет средство чтения, позволяющее считывать последовательные наборы знаков.

Класс TextReader является абстрактным, базовым классом для StreamReader, который считывает символы из потоков. Производный класс StreamReader позволяет открыть текстовый файл для чтения указанного диапазона символов или создать средство чтения на основе существующего потока.

 

TextReader reader = new StreamReader(fileinf.OpenRead()); // создаём объект для чтение содержимого файла

                while (true)

                {

                    cur_line = reader.ReadLine(); //считываем 1 строку

 

                    if (cur_line != null) //Если строка существует

                    {

                        str_have_sym = false;

 

                        for (int i = 0; i < cur_line.Length; i++)

                        {

                            sym_all++; //считаем все символы

 

    1. Exception – Представляет ошибки , происходящие во время выполнения приложения.

 

    1. File – Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов, а так же его можно использовать для получения и задания атрибутов.

Все методы класса статические, поэтому, если необходимо выполнить только одно действие, более эффективным может  оказаться использование  метода File, а не соответствующего экземпляра метода FileInfo.

 

3.4 Используемые методы

  • Exists – определяет указывает ли заданный путь на существующий каталог на диске.

Пространство имен: System.IO

Возвращаемое значение:

Тип: System.Boolean

Значение true, если path указывает на существующий каталог, в противном случае – значение false

 

  • MessageBox.Show – Отображает окно сообщения с сообщением, которое возвращает результат.

Пространство имен: System.Windows

Параметры:

Тип: System.String

Строка String, задающая отображаемый текст.

Возвращаемое значение:

Тип: System.Windows.MessageBoxResult

Значение MessageBoxResult, идентифицирующее кнопку, нажатую пользователем в окне сообщения.

  • Update_fname_info – метод, который используется при открытии и при обновлении файла. Проверяет длинну имени файла.

Далее будет приведён участок кода, когда используется данный метод.

public void update_fname_info(string fname)

        {

            string tmp_fname = fileinf.Name;

            if (tmp_fname.Length > 25)

            {

                tmp_fname = tmp_fname.Substring(0, 25);

            }

 

            label1.Text = "Имя файла:\n" + tmp_fname;

 

            if (fileinf.Extension == ".txt")

            {

                button5.Enabled = true;

            }

            else

            {

                button5.Enabled = false;

 

Проверяет длинну имени файла. Не более 25-и символов. Эта же функция проверяет расширение файла. Если файл текстовый, то кнопка “информация.txt” становится активной.

 

  • Substring – Возвращает подстроку, расположенную в указанном место обьекта String.

Информация о работе Разработка приложения FileInfo по средствам среды программирования Microsoft Visual C#