Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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

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

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

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

Заключение

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

 

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

 

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

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

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

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

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

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

https://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)

{

 

}

}

}

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.