Реферат по предмету "Программирование"


Представление в Internet содержимого каталога средствами ASP

Представление в Internet содержимого каталога
средствами ASP

Христофоров Юрий

В этой статье я на примере расскажу, как используя ASP
(Active Server Pages) можно построить содержимое каталога Web аналогично тому,
как это выглядит на FTP сервере.

Постановка задачи: На Web-сервере есть каталог,
например: C:InetPubwwwrootuser1. Пусть данный каталог имеет несколько
вложенных каталогов и набор файлов в этих каталогах. Примерная структура папок
представлена на Рис. 1.

Рис. 1.

В каждом из представленных на рисунке каталогах может
находиться неограниченное количество файлов, либо некоторые из каталогов могут
быть пустыми. Необходимо представить содержимое папки user1 на Web-странице в
дружественном для пользователя виде.

Интересной особенностью скрипта является то, что
применяя страницу с фреймами (кадрами), можно построить меню пользователя.

Результат должен выглядеть примерно следующим образом:

Находимся в папке
C:Inetpubwwwrootuser1folder1subfolder2:



На данном скриншоте показан пример меню. Страница
menu.htm разделена на два фрейма. В левом фрейме находится файл list_files.asp,
а правый фрейм используется для отображения файлов, ссылки на которые находятся
в левом фрейме. В левом фрейме можно свободно перемещаться по папкам. Т.о.
можно организовать меню пользователя.

Решение: Ключ к решению данной задачи - это
использование MicrosoftR Scripting Library. Нас будет интересовать такой объект
этой библиотеки, как FileSystemObject. FileSystemObject предоставляет объектную
модель доступа к файловой системе. Далее, пользуясь средствами языка написания
сценариев VBScript, выполняемого на Web-сервере, можно написать одну
ASP-страницу, которая будет выполнять всю работу. Итак, приступим.

Листинг файла list_files.asp:




'Отключаем
кэширование страницы














Dim
root_folder, root_vfolder, curr_dir, curr_dir2, temp_arr


'root_folder - переменная для хранения
физического пути к корневой папке USER1


root_folder
= "c:inetpubwwwrootuser1"


'root_vfolder - переменная для хранения
виртуального пути к папке USER1


'localhost - имя Вашего сервера


root_vfolder =
"http://localhost/user1"


'curr_dir2 - имя текущей (активной)
папки


curr_dir2
= Request.QueryString("dir") 'Имя получаем из URL


'curr_dir - полный физический путь к
текущей папке. Получается конкатенацией строк, 'содержащихся в переменных
root_folder и curr_dir2.


curr_dir
= root_folder & curr_dir2


'temp_arr - временный массив


'Получаем массив, содержащий названия
каталогов текущей папки.


temp_arr
= ShowDirList(curr_dir)


'Сортируем массив строк


temp_arr
= SortStr(temp_arr)


%>








'Вызов процедуры, осуществляющей вывод
названий подкаталогов текущего каталога.


Call
Main_Print(temp_arr,1)


'Получаем массив, содержащий имена
файлов текущей папки.


temp_arr
= ShowFilesList(curr_dir)


'Сортируем массив строк


temp_arr
= SortStr(temp_arr)


'Вызов процедуры, осуществляющей вывод
имен файлов текущего каталога.


Call
Main_Print(temp_arr,0)


%>








'Очистка содержимого массива


Erase temp_arr






Далее следует текст функций и процедур, используемых в
сценарии.

Функции: ShowFilesList - возвращает массив, содержащий
имена файлов текущей папки.

ShowDirList - возвращает массив, содержащий названия
каталогов текущей папки.

SortStr - сортирует массив строк.

Процедура: Main_Print - осуществляет вывод в
HTML-формате содержимое текущего каталога.

Продолжение листинга файла list_files.asp:




 


Function
ShowFilesList(folder)


Dim
fs, f, f1, fc, i


'Определяем динамический массив для
хранения имен файлов


ReDim
farr(0)


'Создаем объект FileSystemObject


Set
fs = CreateObject("Scripting.FileSystemObject")


Set
f = fs.GetFolder(folder)


Set
fc = f.Files


i=0


'В цикле заполняем массив именами
файлов текущей папки


For Each f1 In fc


farr(i) = LCase(CStr(f1.Name))
'Преобразуем имя к нижнему регистру символов


i =
i + 1


'Увеличение размера массива


ReDim
Preserve farr(i)


Next


'Возвращаем результат


ShowFilesList
= farr


End
Function









 


Function
ShowDirList(folder)


Dim
fs, f, f1, fc, i


'Определяем динамический массив для
хранения названий каталогов


ReDim
dirarr(0)


Set
fs = CreateObject("Scripting.FileSystemObject")


Set
f = fs.GetFolder(folder)


Set
fc = f.SubFolders


i=0


'В цикле заполняем массив именами
каталогов текущей папки


For
Each f1 In fc


dirarr(i)
= LCase(CStr(f1.Name))


i =
i + 1


ReDim
Preserve dirarr(i)


Next



'Возвращаем результат


ShowDirList
= dirarr


End
Function






 




 


Function
SortStr(arr)


Dim
t,i,j


'Сортировка методом "пузырька"


'UBound - возвращает верхний индекс
массива


For
j = 0 To UBound(arr)-1


For
i = j + 1 To UBound(arr)-1


'StrComp - сравнивает две строки


'Возвращает "-1", если
строка1


' строка2.


If
StrComp(CStr(arr(i)), CStr(arr(j)), vbTextCompare)


t =
arr(j)


arr(j)
= arr(i)


arr(i)
= t


End
If


Next


Next


'Возвращаем результат


SortStr
= arr


End
Function






 




 


Sub
Main_Print(arr,flag)


'flag = 1 - вывод для каталогов


'flag = 0 - вывод для файлов


Dim
i,k,tmp


i =
0


Select
Case flag


Case 1


'Если находимся в подкаталоге, то надо
предусмотреть возможность вернуться


'на уровень выше


If curr_dir2 "" Then


'Ищем последнее вхождение символа
разделителя каталогов ""


k =
InStrRev(curr_dir2,"")


If k
0 Then


'Получаем имя каталога верхнего уровня


tmp = Mid(curr_dir2,1,k-1)


Response.Write ""
'Вывод HTML


'Для украшения используем графический
файл open.gif - изображение открытой папки.


Response.Write
""


'Формируем ссылку на верхний каталог


Response.Write
"" & " .. "
& ""


End If


End If


'Основной цикл вывода названий
каталогов


For
i = 0 To UBound(arr)-1


Response.Write
""


Response.Write
""


Response.Write
"" & arr(i) & _


""



Next


'Вывод имен файлов


Case
0


'Основной цикл вывода имен файлов


For i = 0 To UBound(arr)-1


Response.Write
""


Response.Write
""


'Заменяем "" на
"/" для использования в URL


'Атрибут target нужен для указания
ссылки на фрейм


Response.Write
"


"'
target='main'>" & arr(i) &
""


Next



End
Select


End
Sub


%>












 

Далее необходимо написать страницу menu.htm,
содержащую два фрейма, как было показано выше. Листинг приведен ниже:




 






























 

Файл empty.htm представляет собой пустой файл-заглушку
для корректного отображения страницы в браузере Netscape Navigator.




 















 

Файлы list_files.asp, menu.htm, empty.htm необходимо
поместить в каталог на Web-сервере с правом Script.

Далее в браузере набираем, например,
http://localhost/scripts/menu.htm

Пример работы скрипта приведен на Рис.2.

Рис.2.

Исходный файл проекта прилагается: files.zip
Список литературы

Для подготовки данной работы были использованы
материалы с сайта http://www.activex.net.ru/


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Короленко: Чудная
Реферат Жизненный путь НА Некрасова
Реферат 5 Збереження біологічного та ландшафтного різноманіття, розвиток природно – заповідного фонду та формування національної екологічної мережі
Реферат анализ исторического источника "Жизнь и житие преподобного и богоноснаго отца нашего Сергия"
Реферат Влияние партизанского движения в годы II мировой войны
Реферат Управление Великобританией
Реферат Условия конкретного преступления
Реферат Условия действительности и недействительности сделок
Реферат Участие в выборах
Реферат Участники арбитражного процесса
Реферат Установление фашистской диктатуры
Реферат Пути повышения эффективности использования оборотных активов на примере ЗАО "Минский завод виноградных вин"
Реферат Устав Свердловской области
Реферат Уполномоченный по правам человека республики Узбекистан
Реферат Устав города Перми