回 帖 发 新 帖 刷新版面

主题:怎样查找非当前目录下的文件所在位置???

希望设计一个程序,找到电脑中文件名为“ABCDEF”的全部文件,然后将各文件的路径、扩

展名全部保存在一个数据表中,请问:

     1.用什么命令查找非当前目录下文件所在位置?

     2.如何设计上述程序?

                                          请赐教
                                        谢谢!!!

回复列表 (共1个回复)

沙发

编了一个查找文件的程序,可以查找从指定目录开始深达6层子目录的指定的文件,如果超过6层,可以适当更改程序。输入要查找的文件时可以使用通配符“?”和“*”,查到的文件显示在屏幕上,同时保存在“文件列表.txt”中,可以修改命令,保存到数据库中。以下代码仅供参考,保存到一个PRG文件中。

CLEAR 
cPTH=SYS(5)+SYS(2003)   && 保存当前路径
cP=GETDIR()             && 选择要搜索的目录
cP=cP+IIF(RIGHT(cP,1)<>"\","\","")
accept "请输入在“"+cP+"”中要查找的文件:"  to cF
?cf
FS=0
SET ALTERNATE TO 文件列表.txt ADDITIVE 
SET ALTERNATE ON 
SET DEFAULT TO (cP)
SSWJ(cP,cF)
N1=ADIR(aD1,"","D")
FOR I1=1 TO N1
  IF aD1(I1,1)<>"." AND aD1(I1,1)<>".."
    cP1=cP+aD1(I1,1)+"\"
    SET DEFAULT TO (cP1)
    SSWJ(cP1,cF)
    N2=ADIR(aD2,"","D")
    FOR I2=1 TO N2
      IF aD2(I2,1)<>"." AND aD2(I2,1)<>".."
        cP2=cP1+aD2(I2,1)+"\"
        SET DEFAULT TO (cP2)
        SSWJ(cP2,cF)
        N3=ADIR(aD3,"","D")
        FOR I3=1 TO N3
          IF aD3(I3,1)<>"." AND aD3(I3,1)<>".."
            cP3=cP2+aD3(I3,1)+"\"
            SET DEFAULT TO (cP3)
            SSWJ(cP3,cF)
            N4=ADIR(aD4,"","D")
            FOR I4=1 TO N4
              IF aD4(I4,1)<>"." AND aD4(I4,1)<>".."
                cP4=cP3+aD4(I4,1)+"\"
                SET DEFAULT TO (cP4)
                SSWJ(cP4,cF)
                N5=ADIR(aD5,"","D")
                FOR I5=1 TO N5
                  IF aD5(I5,1)<>"." AND aD5(I5,1)<>".."
                    cP5=cP4+aD5(I5,1)+"\"
                    SET DEFAULT TO (cP5)
                    SSWJ(cP5,cF)
                    N6=ADIR(aD6,"","D")
                    FOR I6=1 TO N6
                      IF aD6(I6,1)<>"." AND aD6(I6,1)<>".."
                        cP6=cP5+aD6(I6,1)+"\"
                        SET DEFAULT TO (cP6)
                        SSWJ(cP6,cF)
                      ENDIF 
                    NEXT 
                    SET DEFAULT TO (cP5)
                  ENDIF 
                NEXT 
                SET DEFAULT TO (cP4)
              ENDIF 
            NEXT 
            SET DEFAULT TO (cP3)
          ENDIF 
        NEXT 
        SET DEFAULT TO (cP2)
      ENDIF 
    NEXT 
    SET DEFAULT TO (cP1)
  ENDIF 
NEXT 
SET DEFAULT TO (cPTH)
?"  共找到 "+ALLTRIM(STR(FS))+" 个文件"
  SET ALTERNATE TO
  SET ALTERNATE OFF 
RETURN

PROCEDURE SSWJ
LPARAMETERS cPath,cFile
nX=ADIR(aA,cFile)
FOR I=1 TO nX
  ?cPath+aA(I,1)
  FS=FS+1
NEXT
RETURN 

我来回复

您尚未登录,请登录后再回复。点此登录或注册