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
рейтинг книги
Кодекс Охотника. Книга XV
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума II
2. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
5.75
рейтинг книги
Идеальный мир для Социопата 4
4. Социопат
Фантастика:
боевая фантастика
6.82
рейтинг книги
Проклятый Лекарь V
5. Каратель
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Live-rpg. эволюция-5
5. Эволюция. Live-RPG
Фантастика:
боевая фантастика
5.69
рейтинг книги
Сонный лекарь 6
6. Сонный лекарь
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Сумеречный стрелок
1. Сумеречный стрелок
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мимик нового Мира 8
7. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Титан империи 4
4. Титан Империи
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Бездомыш. Предземье
3. К Вершине
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Возвышение Меркурия. Книга 16
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Генерал Скала и сиротка
1. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.40