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

на главную

Жанры

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
, которые только что были рассмотрены. Вместо этого используется ряд классов, которые представляют общую концепцию, называемую потоком.

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

Толян и его команда

Иванов Дмитрий
6. Девяностые
Фантастика:
попаданцы
альтернативная история
7.17
рейтинг книги
Толян и его команда

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Кодекс Охотника. Книга XV

Винокуров Юрий
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XV

Мастер Разума II

Кронос Александр
2. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.75
рейтинг книги
Мастер Разума II

Идеальный мир для Социопата 4

Сапфир Олег
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Идеальный мир для Социопата 4

Проклятый Лекарь V

Скабер Артемий
5. Каратель
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Проклятый Лекарь V

Live-rpg. эволюция-5

Кронос Александр
5. Эволюция. Live-RPG
Фантастика:
боевая фантастика
5.69
рейтинг книги
Live-rpg. эволюция-5

Сонный лекарь 6

Голд Джон
6. Сонный лекарь
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сонный лекарь 6

Сумеречный стрелок

Карелин Сергей Витальевич
1. Сумеречный стрелок
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный стрелок

Мимик нового Мира 8

Северный Лис
7. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 8

Титан империи 4

Артемов Александр Александрович
4. Титан Империи
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Титан империи 4

Бездомыш. Предземье

Рымин Андрей Олегович
3. К Вершине
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Бездомыш. Предземье

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Генерал Скала и сиротка

Суббота Светлана
1. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Генерал Скала и сиротка