vfp中,复制文件夹下的文件不能复制该文件夹下的子文件夹及其中的文件,这是好几之前写的一段代码,用来复制文件夹中所有的内容。原理是数据结构中树的遍历。希望对大家有所帮助。

* 复制指定文件夹下的所有文件(包括子文件夹及其中的内容)
LOCAL     lnallnum, lnfilenum, lncount, lctofilepath, lctopath, lcbackpath
&&所有文件(夹)数, 文件数,  计数器1,    ,相对当前根目录路径,存盘路径
LOCAL ARRAY labag(1)
lnallnum = ADIR( labag, "*.*", "D", 0)
lnfilenum = ADIR( lafile)

lctofilepath  =  SYS(2014,"*.*",THISFORM.syspath )
&&当前目录下的文件(包括子文件夹)相当于当前目录的相对路径。
lctopath = LEFT( lctofilepath, LEN( lctofilepath) - 3)
lcbackpath = ADDBS(ALLTRIM(THISFORM.txtpath.VALUE )) + ALLTRIM( lctopath)

IF !DIRECTORY( ADDBS( lcbackpath))
    MD (ADDBS( lcbackpath))
ENDIF

IF lnfilenum > 0
    COPY FILE *.* TO  (ADDBS( lcbackpath)+"*.*")
ENDIF

IF lnallnum > 2

    FOR lncount = 3 TO lnallnum
        IF "D" $ labag( lncount, 5 )

            CD labag( lncount, 1)

            && 调用本过程
            THISFORM.copyfile
            CD ..
        ENDIF
        
    ENDFOR

ENDIF