Результаты разработки

Результатом разработки является пользовательское Windows – приложение. После запуска приложения и открытия файла можно посмотреть основную информацию о файле: Размер, дата создания, дата изменения, дата открытия, имя. Так же можно посмотреть какими атрибутами обладает файл и внести желаемые изменения и сохранить их.

Так же можно выполнить переименование, перемещение и копирование файла.

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

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

Заключение

1. В ходе данной работы были выполнены все поставленные задачи, повышен навык работы с платформой.NETFramework, языком программирования C#.

 

2. Простейший интерфейс позволяет работать даже начинающим пользователям ПК.

 

3. Предусмотрено уведомление пользователя об ошибках.

4. Выполнены все требования к приложению, кроме применения функций WinAPI, т.к. они устарели и их использование значительно увеличило время разработки.

5. Данное приложение можно доработать до более серьёзного приложения, к примеру до приложения, выполняющего базовые функции файл – менеджера.

Список используемой литературы

http://msdn.microsoft.com/ru-ru/library

http://wincmd.ru/plugring/totalcmd.html

http://msdn.microsoft.com/ru-ru/library/bb383977.aspx

 

 

Приложение.

Form1.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

 

namespace File_info

{

 

public partial class Form1: Form

{

 

   FileInfo fileinf;

   public Form1()

   {

       InitializeComponent();

   }

 

   public bool check_exists(string fname) //проверка существования файла

   {

       if (File.Exists(fname))

       {

           return true;

       }

       else

       {

           MessageBox.Show("Анализируемый файл был перемещён или удалён");

           return false;

       }

   }

 

 

   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;

       }

   }

 

 

   private void button1_Click(object sender, EventArgs e)

   {

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

       {

           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();

 

           button6.Enabled = true;

 

           button2.Enabled = true;

           button3.Enabled = true;

           button4.Enabled = true;

       }

   }

 

   private void button6_Click(object sender, EventArgs e)

   {

       Form2 form_attrib = new Form2();

       form_attrib.fname = fileinf.FullName;

 

 

       if ((fileinf.Attributes & FileAttributes.Archive) == FileAttributes.Archive) //Является ли архивным?

       {

           form_attrib.checkBox1.Checked = true;

       }

 

       if ((fileinf.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)//Является ли скрытым?

       {

           form_attrib.checkBox2.Checked = true;

       }

 

       if ((fileinf.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) //Является ли только для чтения?

       {

           form_attrib.checkBox3.Checked = true;

       }

 

       if ((fileinf.Attributes & FileAttributes.NotContentIndexed) == FileAttributes.NotContentIndexed) //Является ли включенным в индексацию?

          {

           form_attrib.checkBox4.Checked = false;

       }

 

       if ((fileinf.Attributes & FileAttributes.System) == FileAttributes.System) //Является ли системным?

       {

           form_attrib.checkBox5.Checked = true;

       }

 

       form_attrib.ShowDialog();

       fileinf.Refresh();

 

   }

 

   private void button2_Click(object sender, EventArgs e)

   {

       if (check_exists(fileinf.FullName))

       {

           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); //обновляем в программе название файла

               }

               catch (Exception err)

               {

                   MessageBox.Show(err.Message.ToString());

               }

           }

       }

   }

 

   private void button3_Click(object sender, EventArgs e)

   {

       if (check_exists(fileinf.FullName))

       {

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

           {

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

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

           }

 

       }

   }

 

   private void button4_Click(object sender, EventArgs e)

   {

       if (check_exists(fileinf.FullName))

       {

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

           {

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

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

           }

 

       }

   }

 

   private void button5_Click(object sender, EventArgs e)

   {

       if (check_exists(fileinf.FullName))

       {

           // if (fileinf.Length > 1024*1024*1024)

 

           int slov = 0; //объявляем переменные для статистики

           int strok = 0;

           int sym = 0;

           int sym_all = 0;

           string cur_line="";

           bool str_have_sym;

 

           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++; //считаем все символы

 

                       if (cur_line[i] == ' ') // Не является ли текущий символ пробелом?

                       {

                           if (((i + 1) < cur_line.Length) && (cur_line[i + 1]!= ' ')) // если символ не является последним и не явл. пробелом

                           {

                               slov++;

                           }

 

                       }

                       else

                       {

                           str_have_sym = true; //Строка имеет символы

                           sym++; //Считаем символы, без пробелов

                       }

 

                   }

 

                   if (str_have_sym == true)

                   {

 

                       slov++;

                   }

 

                   strok++;

               }

               Else

 

               {

                   break; //Выход из бесконечного цикла

               }

           }

 

           reader.Close(); //Закрываем файл для чтения содержимого

           MessageBox.Show("Строк: " + strok.ToString() + "\n"

               + "Слов: " + slov.ToString() + "\n"

               + "Символов всего: " + sym_all.ToString() + "\n"

               + "Символов без пробелов: " + sym.ToString() + "\n");

 

       }

   }

}

}

Form2.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

 

namespace File_info

{

public partial class Form2: Form

{

 

   public string fname;

   public Form2()

   {

       InitializeComponent();

   }

 

   private void button2_Click(object sender, EventArgs e)

   {

       this.Close();

   }

 

   private void button1_Click(object sender, EventArgs e)

   {

       FileInfo fileinf = new FileInfo(fname); //Fileinf - объект класса FileInfo

 

       if (checkBox1.Checked == true)

       {

           fileinf.Attributes |= FileAttributes.Archive; // устанавливаем аттрибут

       }

       else

       {

           fileinf.Attributes ^= FileAttributes.Archive; //снимаем аттрибут

       }

 

       if (checkBox2.Checked == true)

       {

           fileinf.Attributes |= FileAttributes.Hidden;

       }

       else

       {

           fileinf.Attributes ^= FileAttributes.Hidden;

       }

 

       if (checkBox3.Checked == true)

       {

           fileinf.Attributes |= FileAttributes.ReadOnly;

       }

      else

       {

           fileinf.Attributes ^= FileAttributes.ReadOnly;

       }

 

       if (checkBox4.Checked == false)

       {

           fileinf.Attributes |= FileAttributes.NotContentIndexed;

       }

       else

       {

           fileinf.Attributes ^= FileAttributes.NotContentIndexed;

       }

 

       if (checkBox5.Checked == true)

       {

           fileinf.Attributes |= FileAttributes.System;

       }

       else

       {

           fileinf.Attributes ^= FileAttributes.System;

       }

 

       this.Close();

           

   }

 

   private void checkBox1_CheckedChanged(object sender, EventArgs e)

   {

 

   }

}

}

 

 

Form3.cs:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace File_info

{

public partial class Form3: Form

{

    public bool change_name = false;

 

   public Form3()

   {

       InitializeComponent();

   }

 

   private void button1_Click(object sender, EventArgs e)

   {

       change_name = true;

       this.Close();

   }

 

   private void button2_Click(object sender, EventArgs e)

   {

       this.Close();                                             

   }

 

   private void label1_Click(object sender, EventArgs e)

   {

 

   }

 

   private void textBox1_TextChanged(object sender, EventArgs e)

   {

 

   }

}

}

 




double arrow
Сейчас читают про: