![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Результаты разработки ⇐ ПредыдущаяСтр 9 из 9
Результатом разработки является пользовательское 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) {
} } }
|