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


Представление в 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 мильонов к студенческой карме :

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

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

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

Реферат Платон и Аристотель о налогообложении
Реферат Сравнительная характеристика политики разгосударствления и приватизации собственности в Российской Федерации и странах Западной Европы и США
Реферат Аварія в Сіверську в 1993 р.
Реферат Циклы развития бизнеса
Реферат Оптимизация фондового портфеля: новый век - новые идеи
Реферат Макроэкономика КНР
Реферат 1. назначение, принцип действия и устройство ге­нераторных установок
Реферат Земля как планета солнечной системы. Проблемы целостного освоения Земли
Реферат Применение аккредитива в бизнесе
Реферат Особенности развития Камчатского края
Реферат Стратегия бизнеса по фон Клаузевицу
Реферат «Господи, ну и пекло!» думал я, вытирая ручейки пота, стекающие по лицу из-под раскалённого солнцем стального шлема. «Каково же ребятам-то
Реферат Библия китайских бизнесменов
Реферат Особый путь Китая
Реферат Рыцари-финансисты