Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 14 Тема- Работа с файловой системой

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Лабораторная работа № 14

Тема: Работа с файловой системой.

Цели:

      научиться создавать объекты и подпрограммы на языке С#;

      научиться добавлять элементы в список с помощью программного кода;

      научиться работать со свойствами и методами классов DirectoryInfo, Directory и StreamReader.

1.    Создайте новый Web-проект в среде Visual Studio.NET.

2.     Оформление формы и установка свойств объектов.

Поместите на Web-форму следующие объекты: Label1, Label2, Label3, Label4, DropDownList1, DropDownList2, Button1, Button2, Button3, TextBox1.

Установите свойства объектов, как указано в табл.1.

Свойства элементов управления

Объект

Свойства

Label1

Text=Каталог:

Label2

Text=

Label3

Text=Подкаталоги:

Label4

Text=Файлы:

Button1

Text=Обновить список файлов

Button2

Text=Вверх

Button3

Text=Прочитать файл

TextBox1

TextMode=MultiLine

ReadOnly=True

Ваша страница должна выглядеть, как на рис.1.

Итак, в нашем будущем приложении мы сможем просматривать каталоги, подкаталоги и файлы на жестком диске, а также загружать текстовые файлы в объект TextBox1. Для того чтобы можно было просмотреть текст с помощью полосы прокрутки, свойство TextMode объекта TextBox1 установлено в MultiLine.

Для того чтобы получить доступ к классам, предназначенных для получения информации о существующих файлах и каталогах и выполнения типичных операций с файлами и каталогами, необходимо импортировать пространство имен System.IO. Для этого в самом начале файла кода для нашей Web-страницы напишите следующую строку:

using System.IO;

Рис.1. Внешний вид Web-страницы.

Надпись Label2 будет отображать путь родительского каталога, в списке DropDownList2 (слева) можно будет выбрать необходимый подкаталог, список файлов которого по нажатию кнопки «Обновить список файлов» загрузится в DropDownList1 (справа). Для того чтобы подняться на один уровень вверх по дереву каталогов, нужно нажать кнопку «Вверх». И наконец, чтобы прочитать содержимого какого-либо текстового файла, необходимо выбрать имя файла в списке DropDownList1 и нажать кнопку «Прочитать файл».

3. Сначала напишем код, который должен выполняться при загрузке нашей страницы – а именно, загрузка списка подкаталогов и файлов «по умолчанию». Для этого дважды щелкните мышкой на самой Web-странице. Откроется редактор кода. Напишем здесь следующие строки: 

private void Page_Load(object sender, System.EventArgs e)

{

if (this.IsPostBack = = false)

{

string StartDir = @"с:\temp";

Label2.Text = StartDir;

ShowFiles (StartDir);

ShowDirectories (StartDir);

}

}

Разберем строки этого кода.

if (this.IsPostBack = = false)

{

// Строки кода 

}

Этот блок if необходим для того, чтобы проверить, первый ли раз загружается страница. Строки кода, находящиеся внутри блока if, будут выполняться только в том случае, если страница загружается впервые. То есть, при нажатии на какую-то кнопку эти действия выполняться не будут.

 string StartDir = @"с:\temp";

В этой строке объявляется переменная типа string – StartDir, и ей сразу же присваивается значение «c:\temp». Это путь каталога, подкаталоги и файлы которого будут загружены в списки DropDownList1 и DropDownList2 «по умолчанию».

Label2.Text = StartDir;

Здесь мы присваиваем свойству Text объекта Label2 содержимое переменной StartDir, то есть «C:\temp».

ShowFiles (StartDir);

ShowDirectories (StartDir);

В этих строках мы вызываем подпрограммы ShowFiles и ShowDirectories, передавая им параметр StartDir.

Сейчас нам нужно создать подпрограммы ShowFiles и ShowDirectories. Для этого после блока Page_Load напишем следующий код:

private void ShowFiles (string dir)

{

DirectoryInfo DirInfo = new DirectoryInfo(dir);

DropDownList1.Items.Clear();

foreach (FileInfo FileItem in DirInfo.GetFiles())

DropDownList1.Items.Add(FileItem.Name);

}

private void ShowDirectories (string dir)

{

DirectoryInfo DirInfo = new DirectoryInfo(dir);

DropDownList2.Items.Clear();

foreach (DirectoryInfo DirItem in DirInfo.GetDirectories())

        DropDownList2.Items.Add(DirItem.Name);

}

Это две подпрограммы, которые загружают списки подкаталогов (ShowDirectories) и файлов (ShowFiles) в списки DropDownList2 и DropDownList1, соответственно. Рассмотрим одну из этих подпрограмм более подробно.

private void ShowDirectories (string dir)

В скобках указывается аргумент, который принимает подпрограмма. В нашем случае, это переменная типа string. Служебное слово void указывает на то, что процедура не возвращает никакого значения.

DirectoryInfo DirInfo = new DirectoryInfo(dir);

С помощью слова new создается новый экземпляр (DirInfo) объекта DirectoryInfo.

DropDownList2.Items.Clear();

С помощью метода Clear() производится очистка элементов списка DropDownList2.

foreach (DirectoryInfo DirItem in DirInfo.GetDirectories())

        DropDownList2.Items.Add(DirItem.Name);

В список DropDownList2 добавляются элементы, имя каждого из которых соответствует названию подкаталога. Таким образом, сколько подкаталогов находится в директории, столько элементов списка и будет создано.

Сейчас уже можно запустить приложение. Мы увидим, какие подкаталоги (в списке  DropDownList2) и файлы (в списке  DropDownList1) содержит каталог с:\temp. Ваше приложение должно выглядеть, как на рис.2.

Рис.2. Web-приложение «Дерево каталогов».

4. Сейчас настало время обработать событие нажатия на кнопку «Обновить список файлов». Для этого дважды щелкните мышкой на кнопке Button1 и напишите следующий код:

private void Button1_Click(object sender, System.EventArgs e)

{

string NewDir = Label2.Text+ '\\';

NewDir += DropDownList2.SelectedItem.Text;

Label2.Text = NewDir;

ShowFiles (NewDir);

ShowDirectories (NewDir);

}

Разберем строки этого кода подробнее.

string NewDir = Label2.Text+ '\\';

NewDir += DropDownList2.SelectedItem.Text;

Эти строки объявляют и инициализируют переменную типа string. В результате переменная NewDir будет содержать полный путь к каталогу, файлы и подкаталоги которого нам нужно загрузить в списки.

ShowFiles (NewDir);

ShowDirectories (NewDir);

Эти строки вызывают на выполнение подпрограммы ShowFiles и ShowDirectories, но в качестве аргумента им передается переменная NewDir, содержащая путь к необходимому каталогу.

Для того чтобы наш браузер был полным, нужно обработать нажатие кнопки «Вверх». В блоке кода для этого события напишите следующие строки:

private void Button2_Click(object sender, System.EventArgs e)

{

string NewDir;

NewDir = Directory.GetParent(Label2.Text).FullName;

Label2.Text = NewDir;

ShowFiles (NewDir);

ShowDirectories (NewDir);

}

Функция Directory.GetParent(Label2.Text).FullName возвращает полное имя родительского каталога по отношению к директории, путь которой содержится в свойстве Text объекта Label1.

5. Запустите приложение  и поэкспериментируйте со списками и кнопками.

6. И наконец, напишем код для нажатия кнопки «Прочитать файл»:

private void Button3_Click(object sender, System.EventArgs e)

{

string x = Label2.Text;

x += '\\' + DropDownList1.SelectedItem.Text;

StreamReader sr = File.OpenText(x);

TextBox1.Text = sr.ReadToEnd();

sr.Close();

}

Итак, мы создаем новую строковую переменную x, в которой будет содержаться полный путь к выбранному файлу. С помощью специального класса – считывающего потока (StreamReader) указанный файл открывается (File.OpenText(x)). Затем с помощью метода ReadToEnd(), то есть считывание текстовой информации до конца файла, в TextBox1 загружается содержимое выделенного файла. Затем файл закрывается, так как в противном случае осуществленные изменения могут быть неправильно записаны на диск, а сам файл может быть блокирован в открытом состоянии.

7. Запустите приложение.

 Контрольные вопросы и задания:

1.     Как вызвать подпрограмму? Как передать процедуре аргумент?

2.     Для чего нужны подпрограммы?

3.     Для чего нужна проверка условия if (this.IsPostBack = = false)?

4.     Как создать подпрограмму?

5.     Что означает служебное слово void?

6.     Как открыть файл? Как его закрыть?

7.     Измените код приложения – из блока Page_Load исключите проверку условия if (this.IsPostBack = = false). Запустите приложение. Что изменилось? Почему программа работает именно таким образом?

8.     Добавьте в приложение еще одну кнопку и текстовое поле. По нажатию кнопки в текстовом поле выводится информация о выбранном файле – время создания файла и время последнего доступа к файлу. Для этого вам понадобятся методы GetCreationTime() и GetLastAccessTime(). Для того, чтобы показать время создания файла File1, нужно использовать следующий метод:

File.GetCreationTime(File1).ToString()




1. Линейный множественный регрессивный анализ
2. Реферат- История создания города Борисоглебска
3. репродуктивный 3 балла 1315 ошибок 4 балла 1012
4. Основные положения трудового права
5. Шаги КэйллинКапля ползет по витражному стеклу окрашиваясь в разные цвета и пропадает дойдя до рамы
6. Контрольная работа ’ 3 зимняя сессия Парамоновой Е
7. тема которую я разработал после многих лет исследования и большого числа проб и ошибок со многими клиентами
8. Оценка потребности в банковском кредите для финансирования текущих расходов в системе финансового менеджмента предприятия
9. Перелік екзаменаційних питань з курсу «Людина в сучасному соціумі»
10. Лекция 10
11. BRI~ NE G~ZEL Ruf R Denkt~ 1963
12. Физическое воспитание в ВУЗе
13. Общее сведения о больнице и показатели здоровья населения (республика Беларусь)
14.  Введение Многие договоры гражданского права могут выступать и в качестве возмездных и как безвозмез
15. равносильно следующему- Рассмотрим Задача теперь состоит в том чтобы для каждого а найти число положи
16. тема социальной защиты населения 7
17. Реферат- История развития гимнастики
18. Тема- Заключение изменение и расторжение договоров
19. КУРСОВОЙ ПРОЕКТ Экономическое обоснование освоения выпуска новой продукции Вариан
20. Наследие Грозного