如何把一个指定目录下的文件名读入一个数组,不用控件?

解决方案 »

  1.   

    用Dir获得当前目录下文件名和数目
    sFileName=Dir(路径名,31)
    Do While Dir(CurrenPath,31)<> ""
    If sFileName <> "." And sFileName <> ".." Then
    If GetAttr(sPath & sFileName) And vbDirectory Then '如果是目录和文件夹
    newPath = sPath & sFileName
    RecurseTree newPath
    sFileName = Dir(sPath, 31)
    Else
    SetAttr sPath & sFileName, vbNormal
    ...数组部分
    sFileName = Dir
    End If
    Else
    sFileName = Dir
    End If
    DoEvents
    Loop
      

  2.   

    http://www.fantasiasoft.net/Zyl910/DirList.zip
      

  3.   

    Modul  中
    Option Explicit
    '宣告搜寻到的文件的储存阵列变数
    Public FilePackage() As String
    ' 文件的数量
    Public Count As Long
    Public Function FindFilesPath(DirPath As String, FileType As String)'宣告存放目录名称储存阵列变数
    Dim DirPackage() As String
    '存放文件搜寻条件之字串
    Dim SearchString As String
    '接收 Dir() 传回字串,并做为回圈判断的字串
    Dim DirString As String
    'I 目前搜寻目录的指位器,J 是 DirPackage 目录阵列之上限指标
    'K 是 FilePackage 之文件阵列之上限指标
    Dim i As Long, J As Long, k As Long, l As LongOn Error Resume Next
        '把 FilePackage 的上一次搜寻资料清掉
        ReDim FilePackage(0)        '假设我们的搜寻从 C 碟根目录开始
        ReDim DirPackage(0)
        '路径结尾一定要加 "\"
        DirPackage(0) = DirPath & "\"    '假设我们的搜寻字串是 "*.exe"
        SearchString = FileType    '显示沙漏指标
    '    Me.MousePointer = 11'-------- 以下搜寻 C 碟  所有的目录 -----------------    '直到目录指位器 I 超过目录上限指标 J 才结束搜寻
        Do While i <= J        '搜寻目录指位器 I 所指的目录
            DirString = Dir(DirPackage(i), vbHidden Or vbDirectory Or vbReadOnly Or vbSystem)        '直到目前目录找不到任何目录或文件才结束
            Do While DirString <> ""            '不要把上层目录和现目录的指标符号算进去
                If DirString <> "." And DirString <> ".." Then                '如果找到的是个目录
                    If (GetAttr(DirPackage(i) & DirString) And vbDirectory) _
                            = vbDirectory Then
                        '把目录上限加 1
    '                    J = J + 1
                        ' 目录深度为1级
                        J = 1
                        '把储存目录名称的阵列加一个
                        ReDim Preserve DirPackage(J)
                        '把查到的新目录放在 DirPackage 新元素
                        DirPackage(J) = DirPackage(i) + DirString + "\"                '如果找到的是个文件
                    Else
                        '如果与搜寻字串相符合
                        If UCase(DirString) Like UCase(SearchString) Then
                            '把储存文件名称的阵列加一个
                            ReDim Preserve FilePackage(k)
                             ' 把查到的新文件放在 FilePackage 新元素
                            ' 存储完整文件路径
                            FilePackage(k) = DirPackage(i) + DirString
                            '把文件上限加 1
                            k = k + 1
                        End If
                    End If            End If            '继续找是否有符合的资料,并把结果放 DirString
                DirString = Dir
    '            DoEvents
            Loop        ' 把现目录指标往下移一个
            i = i + 1
            ' 返回找到的文件总数
        SkinsCount = UBound(FilePackage)    LoopEnd Function