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
, которые только что были рассмотрены. Вместо этого используется ряд классов, которые представляют общую концепцию, называемую потоком.
Поделиться:
Популярные книги
Релокант
1. Релокант в другой мир
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Я тебя верну
2. Сага о подсолнухах
Любовные романы:
современные любовные романы
эро литература
5.50
рейтинг книги
Лорд Системы
1. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
4.00
рейтинг книги
Надуй щеки! Том 6
6. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Печать мастера
6. Гибрид
Фантастика:
попаданцы
технофэнтези
аниме
фэнтези
6.00
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Черный Маг Императора 7 (CИ)
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 4
4. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Воевода
5. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Девочка из прошлого
3. Айдаровы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Бастард Императора
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Санек 4
4. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Семья. Измена. Развод
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты нас предал
1. Измены. Кантемировы
Любовные романы:
современные любовные романы
5.00