下面是程序代码:
SET SAFETY OFF && 指定在改写已有文件时不显示对话框
SET TALK OFF && 阻止对话结果发送到 Visual FoxPro 主窗口、系统信息窗口、图形状态栏或用户自定义窗口
SET SYSMENU OFF && 在程序执行期间废止 Visual FoxPro 主菜单栏
SET DATE ANSI && 设置中国日期格式为yy.mm.dd
SET HOURS TO 24 && 将时间设为24小时制
SET CENTURY ON && 设置日期格式为带世纪的
SET PATH TO CURDIR() && 设置当前路径为默认路径
PUBLIC wjno
wjno=0
DO WHILE wjno<5
DO CASE
CASE wjno=0 OR wjno=2
DO FORM \Form\wjtran.scx
READ EVENTS
CASE wjno=1
DO wj01
DO FORM \Form\wjtran.scx
READ EVENTS
ENDCASE
ENDDO
PROCEDURE wj01 && 存档程序
WAIT
CREATE TABLE files0 (文件名 C(100), 文件大小 N(13), 修改日期 T, 类型 C(3), 路径 C(80)) && 创建表
listfiles([&listfiles]) && 建立listfiles函数
FUNCTION ListFiles(tcFolder) && 自定义路径函数
LOCAL ARRAY laFiles[1] && 创建的数组laFiles,[1]表示一组。
LOCAL lcFileName, ii
m.tcFolder = ADDBS(m.tcFolder) && 向路径表达式添加一个反斜杠。
IF ADIR(m.laFiles, m.tcFolder + '*.*', 'AHRSD', 1) < 3 && 若是文件长度小于3个字节,则不计算。
RETURN .F.
ENDIF
ASORT(m.laFiles, 3, -1, 1) && 按第3列排序数组,最后一位数大于0为降序排序。
FOR m.ii = 1 TO ALEN(m.laFiles, 1) && 返回数组中元素、行或列的数目。
m.lcFileName = m.laFiles[m.ii, 1]
DO CASE
CASE '.' == m.lcFileName Or '..' == m.lcFileName
CASE AT('D', m.laFiles[m.ii, 5]) > 0 && 在一个字符表达式中查找另一个字符表达式出现的位置。
ListFiles(m.tcFolder + m.lcFileName)
OTHERWISE
lafilesdt1=DTOC(m.lafiles[m.ii, 3])
lafilesdt2=m.lafiles[m.ii, 4]
m.lafiles[m.ii, 3]=CTOT([&lafilesdt1 &lafilesdt2])
INSERT INTO files0 VALUES (m.lafiles[m.ii, 1], m.lafiles[m.ii, 2], m.lafiles[m.ii, 3], JUSTEXT(m.lafiles[m.ii, 1]), m.tcFolder) && 将数据录入到表中。
ENDCASE
ENDFOR
wjno=0
RETURN
ENDFUNC && 标识 FUNCTION 结构的结束。