主题:文件夹操作~
ShengJM
[专家分:80] 发布于 2005-08-26 09:29:00
怎么才能读取某个目录下所有文件夹的名称
回复列表 (共2个回复)
沙发
labxj0769 [专家分:21070] 发布于 2005-08-27 15:07:00
我的是读取文件夹和文件,你可修改或从创建的dir_file表用下面语句
select distinct 文件目录 from dir_file order by 文件目录 into table 文件目录
******************
current_dir=GETDIR()
CLOSE ALL
CLEAR
IF FILE('dir_file.dbf')
DELETE FILE dir_file.dbf
ENDIF
CREATE TABLE dir_file FREE (文件名 c(50), 文件目录 c(100))
DO searfile WITH current_dir
SELECT dir_file
BROWSE
PROCEDURE searfile
PARAMETERS current_dir
LOCAL i,cur_dir,tempdir,file1(1,1)
IF VARTYPE(current_dir)="C"
chdir(current_dir)
ELSE
RETURN
ENDIF
=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 AT("D",file1[i,5])>0
IF RIGHT(RTRIM(cur_dir),1)=""
tempdir=cur_dir+file1(i,1)
ELSE
tempdir=cur_dir+""+file1(i,1)
ENDIF
IF AT("D",file1[i,5])>0 AND VARTYPE(current_dir)="C"
searfile(tempdir)
ENDIF
ELSE
chdir(cur_dir) &&回退到父目录
IF AT("D",file1[i,5])=0 AND ALLTRIM(file1[i,1])!="." AND ALLTRIM(file1[i,1])!=".."
cFileName=file1(i,1)
cFilePath=cur_dir
INSERT INTO dir_file values (cFileName,cFilePath)
ENDIF
ENDIF
ENDFOR
ENDPROC
板凳
dustin27 [专家分:150] 发布于 2005-12-30 19:55:00
好帖,收益非浅
我来回复