老骥伏枥

时间:2022-03-30 08:41:37 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
老骥伏枥--VFP管理网页文件

http://www.sina.com.cn 2001/12/03 10:33 赛迪网-中国计算机报

/何咏明、尹有仁

随着计算机技术的发展,Internet已经渗透到我们生活的各个方面中,如何管理和维护一个网站中的网页文件,对于网站来说至关重要。 笔者利用VFP的管理思想,将网站的一个目录树及其下面的所有网页文本保存到库中从而达到维护网页文件的功能,这样当某一个用户无意中删除了网页文件时可以借助于存放在库中的文件加以恢复。 功能介绍

利用VFP创建一个表单,在该表单中安排四个命令按钮,如图所示。选择站点目录是直接调用VFP的函数选定一个目录,并将选定的目录保存到一个历史表history_tab(字段:dir_name);保存网页文件则通过编写一个递归调用的遍历目录树的函数thisform.search(cur_directory)来遍历选定的一个目录,将该目录中所需要的网页文件获取到一个表data_asp恢复网页文件则是直接从表data_asp恢复所有的网页文件。



保存选定目录中的网页文件需要借助于递归调用的思想方法来遍历一个目录树,这可以使用数据结构中所谓“深度优先搜索”的算法来完成,表单中的方法程序search(current_dir)就是完成该功能。 实现代码

表单中的方法程序及命令按钮代码如下:

添加的表单方法程序:thisform.search,参数current_dir parameter current_dir

local i,cur_dir,tempdir,file1(1,1),extens,ok,file2 chdir (current_dir)

=adir(file1,".","AD") &&&&将该目录下的所有文件保存到数组file1 cur_dir=curdir() &&&&保存当前目录 for i=1 to alen(file1,1)

若遇到一个子目录时则进行递归调用

if alltrim(file1(i,1))!="." and alltrim(file1(i,1))!=".." and ("D" (i,5)) if right(rtrim(cur_dir),1)="" tempdir=cur_dir+file1(i,1) else

tempdir=cur_dir+""+file1(i,1) endif


thisform.search(tempdir) else

检测是否是网页扩展名

chdir (cur_dir) &&&&回退到父目录

ok=.f. &&&&一个文件目录是否为网页文件 if at(".",fullpath(file1(i,1)))<>0

extens=right(fullpath(file1(i,1)),len(fullpath(file1(i,1)))-at(".",fullpath(file1(i,1)))) do case

case lower(extens)="asp" ok=.t.

case lower(extens)="htm" ok=.t.

case lower(extens)="html" ok=.t.

case lower(extens)="php" ok=.t.

case lower(extens)="htx" ok=1

case lower(extens)=”js” ok=.t.

case lower(extens)="idc" ok=.t.

case lower(extens)="idx" ok=.t. endc

if ok=.t.

&&&&是网页文件则插入到表data_asp file2=fullpath(file1(i,1))

insertsintosdata_asp values (file2,"",thisform.cur_directory) appe memo content from (file2) endif endif endif next

选择站点目录

thisform.cur_directory=getdir() select history_tab

locate all for dir_name=thisform.cur_directory if found()

insertsintoshistory_tab values (thisform.cur_directory) else

select data_asp

dele all for dir_name=thisform.cur_directory


endif

保存网页文件

local choice,defaultdir

if alltrim(thisform.cur_directory)=="" choice=messagebox

("你应该选择一个站点目录",0) else

defaultdir=curdir()

chdir (thisform.cur_directory)

=thisform.search(thisform.cur_directory) chdir (defaultdir) endif

恢复网页文件



select data_asp set delete on go top scan

copy memo content to (filename) endscan return *退出

select data_asp pack

select history_tab pack

close all

release thisform


本文来源:https://www.wddqw.com/doc/01754a1c10a6f524ccbf85a6.html