Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Namespace FilePropertiesAndMovement
{ public partial class Form1: Form { private string currentFolderPath; private System.Windows.Forms.Label label8; private System.Windows.Forms.Button buttonDisplay; private System.Windows.Forms.Button buttonUp; private System.Windows.Forms.TextBox textBoxLastWriteTime; private System.Windows.Forms.Label label2; private System.Windows.Forms.TextBox textBoxInput; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBoxCreationTime; private System.Windows.Forms.ListBox listBoxFiles; private System.Windows.Forms.ListBox listBoxFolders; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Label label6; private System.Windows.Forms.TextBox textBoxLastAccessTime; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox textBoxFileSize; private System.Windows.Forms.Label label7; private System.Windows.Forms.TextBox textBoxFileName; private System.Windows.Forms.Label label4; private System.Windows.Forms.TextBox textBoxFolder; private System.Windows.Forms.GroupBox groupBox2; private System.Windows.Forms.GroupBox groupBox3; private System.Windows.Forms.Label label9; private System.Windows.Forms.TextBox textBox1; private System.Windows.Forms.Label label10; private System.Windows.Forms.Label label11; private System.Windows.Forms.TextBox textBox2; private System.Windows.Forms.Label label12; private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.Label label13; private System.Windows.Forms.TextBox textBox4; private System.Windows.Forms.GroupBox groupBox4; private System.Windows.Forms.Button button1; private System.Windows.Forms.TextBox textBox5; private System.Windows.Forms.GroupBox groupBox5; private System.Windows.Forms.Label label14; private System.Windows.Forms.TextBox textBoxNewPath; private System.Windows.Forms.Button buttonDelete; private System.Windows.Forms.Button buttonCopyTo; private System.Windows.Forms.Button buttonMoveTo; public Form1() { InitializeComponent(); } // Функции ClearAllFields, DisplayFileInfo, DisplayFolderList, // DisableMoveFeatures не являются обработчиками событий. Коды этих // функций в класс главной формы необходимо добавить вручную
// Очистка содержимого всех элементов управления protected void ClearAllFields () { listBoxFolders.Items.Clear(); listBoxFiles.Items.Clear(); textBoxFolder.Text = ""; textBoxFolder.Text = ""; textBoxFileName.Text = ""; textBoxCreationTime.Text = ""; textBoxLastAccessTime.Text = ""; textBoxLastWriteTime.Text = ""; textBoxFileSize. Text = ""; }
// Отображение информации о файлах в текстовых полях protected void DisplayFileInfo(string fileFullName) { // Создание объекта класса FileInfo. В конструктор класса // передается строка, содержащая путь к файлу FileInfo theFile = new FileInfo(fileFullName); if (!theFile.Exists) throw new FileNotFoundException(" Файл не найден: " + fileFullName); // Вывод информации об имени файла textBoxFileName. Text = theFile. Name; // Вывод информации о дате создания файла
textBoxCreationTime.Text = theFile.CreationTime.ToLongTimeString(); // Вывод информации о времени последнего доступа к файлу textBoxLastAccessTime.Text = theFile.LastAccessTime.ToLongDateString(); textBoxLastWriteTime.Text = theFile.LastWriteTime.ToLongDateString(); // Вывод информации о размере файла textBoxFileSize.Text = theFile.Length.ToString() + "bytes"; // Разрешение перемещения, удаления, копирования файлов textBoxNewPath.Text = theFile.FullName; textBoxNewPath.Enabled = true; buttonCopyTo.Enabled = true; buttonDelete.Enabled = true; buttonMoveTo.Enabled = true; }
// Отображение содержимого заданной папки в двух окнах списков // listBoxFolders и listBoxFiles protected void DisplayFolderList(string folderFullName) { // Создание объекта класса DirectoryInfo. В конструктор класса // передается строка, содержащая путь к папке DirectoryInfo theFolder = new DirectoryInfo(folderFullName); // Свойство Exists позволяет проверить, существует ли объект файловой // системы if (!theFolder.Exists) throw new DirectoryNotFoundException(" Папка не найдена: " + folderFullName); ClearAllFields(); DisableMoveFeatures(); textBoxFolder.Text = theFolder.FullName; currentFolderPath = theFolder.FullName; // Вывод в элемент listBoxFolders списка всех вложенных папок в папке foreach (DirectoryInfo nextFolder in theFolder.GetDirectories()) listBoxFolders.Items.Add(nextFolder.Name); // Вывод в список listBoxFiles списка всех файлов в папке foreach (FileInfo nextFile in theFolder.GetFiles()) listBoxFiles.Items.Add(nextFile.Name); }
// Щелчок по кнопке Отобразить protected void OnDisplayButtonClick(object sender, EventArgs e) { try { string folderPath = textBoxInput.Text; DirectoryInfo theFolder = new DirectoryInfo(folderPath); if (theFolder.Exists) { (theFolder.FullName); return; } FileInfo theFile = new FileInfo(folderPath); if (theFile.Exists) { DisplayFolderList(theFile.Directory.FullName); int index = listBoxFiles.Items.IndexOf(theFile.Name); listBoxFiles.SetSelected(index, true); return; } throw new FileNotFoundException("There is no file or folder with" + "this name:" + textBoxInput.Text); } catch (Exception ex) { MessageBox.Show(ex.Message); } } // Объявление недоступными элементов управления для перемещения,
// удаления копирования файлов void DisableMoveFeatures() { textBoxNewPath.Text = ""; textBoxNewPath.Enabled = false; buttonCopyTo.Enabled = false; buttonDelete.Enabled = false; buttonMoveTo.Enabled = false; } // Выбор элемента в окне списка Файлы protected void OnListBoxFilesSelected(object sender, EventArgs e) { try { string selectedString = listBoxFiles.SelectedItem.ToString(); string fullFileName = Path.Combine(currentFolderPath, selectedString); DisplayFileInfo(fullFileName); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
// Выбор элемента в окне списка Папки protected void OnListBoxFoldersSelected(object sender, EventArgs e) { try { string selectedString = listBoxFolders.SelectedItem.ToString(); string fullPathName = Path.Combine(currentFolderPath, selectedString); DisplayFolderList(fullPathName); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
// Щелчок по кнопке Вверх protected void OnUpButtonClick(object sender, EventArgs e) { try { string folderPath = new FileInfo(currentFolderPath).DirectoryName; DisplayFolderList(folderPath); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
// Щелчок по кнопке Удаление protected void OnDeleteButtonClick(object sender, EventArgs e) { try { string filePath = Path.Combine(currentFolderPath, textBoxFileName.Text); string query = "Really delete the file\n" + filePath + "?"; if (MessageBox.Show(query, "Delete File?", MessageBoxButtons.YesNo) == Dialog Result.Yes) { File.Delete(filePath); DisplayFolderList(currentFolderPath); } } catch (Exception ex) { MessageBox.Show("Unable to delete file. The following exception" + "occurred:\n" + ex.Message, "Failed"); } } // Щелчок по кнопке Перемещение protected void OnMoveButtonClick(object sender, EventArgs e) { try { string filePath = Path.Combine(currentFolderPath, textBoxFileName.Text); string query = "Really move the file\n" + filePath + "\nto " + textBoxNewPath.Text + "?"; if (MessageBox.Show(query, " Переместить файл?", MessageBoxButtons.YesNo) == DialogResult.Yes) { File.Move(filePath, textBoxNewPath.Text); DisplayFolderList(currentFolderPath); } } catch (Exception ex) { MessageBox.Show(" Невозможно выполнить перемещение файла " + "occurred:\n" + ex.Message, "Failed"); } } // Щелчок по кнопке Копирование protected void OnCopyButtonClick(object sender, EventArgs e) { try { string filePath = Path.Combine(currentFolderPath, textBoxFileName.Text); string query = "Really copy the file\n" + filePath + "\nto" + textBoxNewPath.Text + "?"; if (MessageBox.Show(query, " Копировать файл?", MessageBoxButtons.YesNo) == DialogResult.Yes) { File.Copy(filePath, textBoxNewPath.Text); DisplayFolderList(currentFolderPath); } } catch (Exception ex) { MessageBox.Show(" Невозможно выполнить копирование файла " + "occurred:\n" + ex.Message, "Failed"); } } } }
textBoxInput textBoxFolder buttonDisplay
textBoxFileSize textBoxLastWriteTime buttonMoveTo buttonCopyTo buttonDelete
Рис. 7.1. Интерфейс приложения Простой браузер файлов Порядок выполнения работы
1. Изучить теоретические сведения и примеры, представленные в гл. 13 «Работа с файловой системой» учебного пособия В. В. Вдовенко «Разработка приложения на языке С#» (с. 272–285), а также пример приложения Простой браузер файлов, представленный выше. 2. Ответить на контрольные вопросы. 3. Выполнить практическое задание. 4. Составить отчет в электронном виде, который должен содержать титульный лист, цель лабораторной работы, задание, ответы на контрольные вопросы, листинг программы и результаты ее работы. Контрольные вопросы и задания
1. В каком пространстве имен определены классы для работы 2. Охарактеризуйте различия в использовании классов DirectoryInfo, FileInfo и Directory, File? 3. Какие классы обеспечивают выполнение операций чтения и записи содержимого файлов? 4. Опишите организацию обработки файлов с помощью объектных технологий. 5. Каким образом можно вывести информацию о логических дисках компьютера? 6. В каких элементах управления отображается информация о файлах и папках? 7. Назовите методы, позволяющие выполнять копирование, перемещение, удаление файлов. 8. Для каких операций применяются методы класса DirectoryInfo? 9. Каким образом можно создать объекты классов DirectoryInfo и FileInfo? 10. Назовите свойства классов DirectoryInfo и FileInfo, позволяющие получить информацию об объекте файловой структуры. Практическое задание
Разработать приложение Браузер файлов, поддерживающее следующие действия: – вывод информации о логических дисках компьютера; – вывод дерева файлов и папок; – предоставление информации о выделенных файле или папке, дате создания, размере, атрибутах, времени последней модификации; – выполнение операций создания, копирования, переименования, перемещения файлов и папок. Интерфейс программы должен поддерживаться с помощью главного меню, контекстного меню и панелей инструментов. В главном меню необходимо предусмотреть пункт О программе, при выборе которого будет выводиться диалоговое окно, содержащее справочную информацию.
Лабораторная работа 8
|
|||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2022-09-03; просмотров: 69; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.173.40 (0.097 с.) |