Namespace FilePropertiesAndMovement 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

         
   


textBox- NewPath
textBoxLast-AccessTime
textBox- Creation- Time
textBoxFile- Name
listBoxFolders
buttonUp
listBoxFiles

 

  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; просмотров: 68; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.111.24 (0.108 с.)