Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Методы для перемещения и копирования файла структурированы похожим образом:

protected void OnMoveButtonClickfobject sender, EventArgs e) {

 try {

string FilePath = Path.Combine(currentFolderPath, txtBoxFileName.Text);

string Query =

"Really move the file\n" + FilePath + "\nto " + txtBoxNewPath.Text + "?";

if (MessageBox.Show(Query, "Move File?", MessageBoxButtons.YesNo) == DialogResult.Yes) {

File.Move(FilePath, txtBoxNewPath.Text);

DisplayFolderList(currentFolderPath);

}

 } catch(Exception ex) {

MessageBox.Show("Unable to move file. The following exception" + " occured: \n" + ex.Message, "Failed");

 }

}

protected void OnCopyButtonClick(object sender, EventArgs e) {

 try {

string FilePath = Path.Combine(currentFolderPath, txt.BoxFileName.Text);

string Query = "Really copy the file\n" + FilePath + "\nto " + txtBoxNewPath.Text + "?";

if (MessageBox.Show(Query, "Copy File?", MessageBoxButtons.YesNo) == DialogResult.Yes) {

File.Copy(FilePath, txtBoxNewPath.Text);

DisplayFolderList(currentFolderPath);

}

 } catch (Exception ex) {

MessageBox.Show("Unable to copy file. The following exception" + " occured:\n" + ex.Message, "Failed");

 }

}

Нам

нужно также убедиться в том, что новые кнопки и текстовое поле включаются и отключаются в соответствующее время. Чтобы включить их, когда выводится содержимое файла, мы добавляем следующий код в
DisplayFileInfo
:

protected void DisplayFileInfo(string fileFullName) {

 FileInfo TheFile = new FileInfo(fileFullName);

 if (!TheFile.Exists) throw new FileNotFoundException("File not found: " + fileFullName);

 txtBoxFileName.Text = TheFile.Name;

 txtBoxCreationTime.Text = TheFile.CreationTime.ToLongTimeString;

 txtBoxLastAccessTime.Text = TheFile.LastAccessTime.ToLongDateString;

 txtBoxLastWriteTime.Text = TheFile.LastWriteTime.ToLongDateString;

 txtBoxFileSize.Text = TheFile.Length.ToString + " bytes";

 // включает кнопки перемещения, копирования и удаления

 txtBoxNewPath.Text = TheFile.FullName;

 txtBoxNewPath.Enabled = true;

 buttonCopyTo.Enabled = true;

 buttonDelete.Enabled = true;

 buttonMoveTo.Enabled = true;

}

Нам

нужно также сделать одно изменение в
DisplayFolderInfo
:

protected void DisplayFolderList(string folderFullName) {

 DirectoryInfo TheFolder = new DirectoryInfo(folderFullName);

 if (!TheFolder.Exists)

throw new DirectoryNotFoundException("Folder not found: " + folderFullName);

 ClearAllFields;

 DisableMoveFeatures;

 txtBoxFolder.Text = TheFolder.FullName;

 currentFolderPath = TheFolder.FullName;

 // перечислить все папки, вложенные в папку

 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories)

listBoxFolders.Items.Add(NextFolder.Name);

 // перечислить все файлы в папке

 foreach (FileInfo NextFile in TheFolder.GetFiles)

listBoxFiles.Items.Add(NextFile.Name);

}

DisableMoveFeatures
является небольшой служебной функцией, которая отключает новые элементы управления:

void DisableMoveFeatures {

 txtBoxNewPath.Text = "";

 txtBoxNewPath.Enabled = false;

 buttonCopyTo.Enabled = false;

 buttonDelete.Enabled = false;

 buttonMoveTo.Enabled = false;

}

Нам также понадобится добавить код в

ClearAllFields
, чтобы очистить дополнительное текстовое поле:

protected void ClearAllFields {

 listBoxFolders.Items.Clear;

 listBoxFiles.Items.Clear;

 txtBoxFolder.Text = "";

 txtBoxFileName.Text = "";

 txtBoxCreationTime.Text = "";

 txtBoxLastAccessTime.Text = "";

 txtBoxLastWriteTime.Text = "";

 txtBoxFileSize.Text = "";

 txtBoxNewPath.Text = "";

}

После этого код закончен.

Чтение и запись файлов

Чтение и запись файлов является в принципе очень простым процессом, но делается это не с помощью объектов

DirectoryInfo
или
FileInfo
, которые только что были рассмотрены. Вместо этого используется ряд классов, которые представляют общую концепцию, называемую потоком.

Поделиться:
Популярные книги

Релокант

Ascold Flow
1. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Релокант

Я тебя верну

Вечная Ольга
2. Сага о подсолнухах
Любовные романы:
современные любовные романы
эро литература
5.50
рейтинг книги
Я тебя верну

Лорд Системы

Токсик Саша
1. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
4.00
рейтинг книги
Лорд Системы

Надуй щеки! Том 6

Вишневский Сергей Викторович
6. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки! Том 6

Печать мастера

Лисина Александра
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Печать мастера

Система Возвышения. (цикл 1-8) - Николай Раздоров

Раздоров Николай
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Город Богов 4

Парсиев Дмитрий
4. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 4

Воевода

Ланцов Михаил Алексеевич
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Воевода

Девочка из прошлого

Тоцка Тала
3. Айдаровы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Девочка из прошлого

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

Санек 4

Седой Василий
4. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Санек 4

Семья. Измена. Развод

Высоцкая Мария Николаевна
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Семья. Измена. Развод

Ты нас предал

Безрукова Елена
1. Измены. Кантемировы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты нас предал