标题:如何将D盘下所有文件按要求写入表文件中(文件列表)
只看楼主
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
得分:0 
以下是引用瓜瓜1990在2020-6-13 17:45:26的发言:

递归调用adir()
SET SAFETY OFF
CREATE TABLE temp (文件名  m,文件类型 c(6),完整路径 m)
DECLARE aReturnDirectory(1) &&建立返回目录数组
nCount=FindDirectory(@aReturnDirectory,"D:\")
BROWSE

FUNCTION  FindDirectory
lPARAMETERS taDireArray,tcPath,lnReCurLevel &&接收数组名、路径名、递归层数(函数内部用)参数
LOCAL laSub[1],i,lnSubDirCount,lnLen
IF PARAMETERS()<3 &&第一次调用该程序时不会传递 lnReCurLevel 参数
    lnReCurLevel=0
ENDIF
IF RIGHT(tcPath,1)# "\"
    tcPath=tcPath+"\"
ENDIF
IF lnReCurLevel=0
    DECLARE taFileArray[1] &&存放文件数组
    DECLARE taDireArray[1] &&存放目录数组
    If DIRECTORY(tcPath) &&只需在第 0 层检查目录是否存在
        taDireArray[1]=tcPath
    ELSE
    RETURN 0
    ENDIF
ELSE
    DECLARE taDireArray[ALEN(taDireArray)+1]
    taDireArray[ALEN(taDireArray)]=tcPath
ENDIF
lnSubDirCount=ADIR(laSub,tcPath+"*.*","DHS")
FOR i=1 TO lnSubDirCount
IF "D" $ laSub[i,5] AND ! laSub[i,1]=="." AND ! laSub[i,1]==".."
    *!* 递归调用 FindDirectory()函数
    FindDirectory(@taDireArray,tcPath+laSub[i,1],lnReCurLevel+1)
ELSE
    IF ! laSub[i,1]=="." AND ! laSub[i,1]==".."
        DECLARE taFileArray[ALEN(taFileArray)+1]
        taFileArray[ALEN(taFileArray)]=tcPath+laSub[i,1]
        INSERT INTO temp (文件名,文件类型,完整路径) VALUES (juststem(tcPath+laSub[i,1]),justext(tcPath+laSub[i,1]),justpath(tcPath+laSub[i,1]))
    ENDIF
ENDIF
ENDFOR
RETURN ALEN(taFileArray)

2021-05-10 15:30
dbf永动机
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2022-8-30
得分:0 
所以问题又来了,生成这样的temp文件后只有双击才能看见memo里面的文件名和路径,怎么把这个表转换成可以完全显示的excel,或者txt?
2022-08-30 13:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502101-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.207628 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved