用VFP管理网页文件
随着计算机技术的发展,互联网已经渗透到我们生活的方方面面。如何管理和维护网站中的网页文件对网站来说非常重要。
作者利用VFP的管理思想,将网站的一个目录树及其下的所有网页保存到库中,从而实现了维护网页的功能。这样,当用户无意中删除网页时,可以通过存储在库中的文件来恢复。
功能介绍
用VFP创建一个窗体,在这个窗体中排列四个命令按钮,如图所示。选择站点目录是直接调用VFP的函数选择一个目录,并将选择的目录保存到历史表history_tab (field: dir _ name)中;为了保存网页文件,编写递归调用函数thisform.search(cur_directory)遍历所选目录,将目录中需要的网页文件获取到表data_asp中;;恢复网页文件就是直接从数据表data_asp中恢复所有的网页文件。
要将web文件保存在选定的目录中,需要通过递归调用来遍历目录树。这可以通过在数据结构中使用所谓的“深度优先搜索”算法来实现,表单中的方法程序search(current_dir)完成了这个功能。
实现代码
表单中的方法程序和命令按钮代码如下:
新增表单方法程序:thisform.search,parameter current _ dir
parameter current _ dir
locali,cur _ dir,tempdir,file1 (1,1),extens,ok,2
chdir(current _ dir)
= adir(file 1," "," ad")&&&将此目录下的所有文件保存到数组file1
cur _ dir = curdir ()&&&保存当前目录[ = "。"andalltrim(file1(i,1))!=".."and("D"$file1(i,5))
ifright(rtrim(cur_dir),1)= " \ "
tempdir = cur _ dir+file 1(I,1)
else
tempdir = cur _ dir+" \ "+file 1(I,1)
endif
this form . search(tempdir)
else
检查是否是网页扩展名
chdir (cur _ dir)&&&回到父目录
OK =。F.&&&文件目录是否为网页文件
ifat(" . ",fullpath (file1 (I,1)) 0 len(fullpath(file1(i,1)))-at(" . ",fullpath(file1(i,1))))
docase
case lower(extens)= " ASP "[br/]OK = . t .
case lower(extens)= " htm "[br/]OK = . t .
case lower(extens)= " html "/br/]OK = . t .
case lower(extens)= " PHP "/br/]OK = . t .
case lower(extens)=。t .
case lower(extens)= " idx "
OK =。ENDC·伊福克。t .
& &是一个网页文件,那么它被插入到data_asp表中。1))
insertintodata _ aspvalues(file 2,"",this form . cur _ directory)
appmemocontentfrom(file 2)
endif
endif
endif
next
选择网站目录
this form . cur _ directory = getdir()
select history _ tab
locatealfordir _ name = this form . cur _ directory
if found()
insertintohistory _ tab values(this form . cur _ directory)
else
select data _ ASP
deleallfordir _ name = this form . cur _ directory
endif
保存网页文件
localchoice,default dir
ifalltrim(this form . cur _ directory)= "
choice = messagebox
("您应该选择一个站点目录",0)
else
default dir = curdir()
chdir(this form . cur _ directory)
= this form . search(this form . cur _ directory)
chdir(default dir)
end
恢复网页文件
select data _ ASP
set delete on
gotop
scan
copymcontentto(文件名)
endscan
* exit[/br]select data _ ASP
pack
select history _ tab
pack
close all
release thisform
在这里,我们只实现文本文件的保存和恢复。如果在表格中加入通用字段,可以实现图形文件的保存和恢复,程序会更加完善。
0条评论