请问怎么实现读取一个文件夹中所有的文件啊,一次读取,包括文件中的子目录里的文件。谢谢了

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim fs As New FileSystemObject  ' 建立 FileSystemObject
        Dim fd As Folder    ' 定义 Folder 对象
        Dim sfd As Folder    Set fd = fs.GetFolder("c:\")
        ListFolder fd
    End SubSub ListFolder(fd As Folder)
        Dim sfd As Folder
        
        For Each sfd In fd.SubFolders
            Debug.Print sfd.Path
            List1.AddItem sfd.Path
            ListFolder sfd  ' 以 sfd 为参数,递归调用
        Next
    End Sub
      

  2.   

    忘记说明一点.引用:MICROSOFT SCRIPTING RUNTIME
      

  3.   

    谢谢楼上的大哥,再请问一下,能给点关于ini文件的使用吗?
      

  4.   


    Private Declare Function WritePrivateProfileString _
    Lib "kernel32" Alias "WritePrivateProfileStringA" _
    (ByVal lpApplicationname As String, ByVal _
    lpKeyName As Any, ByVal lsString As Any, _
    ByVal lplFilename As String) As LongPrivate Declare Function GetPrivateProfileString Lib _
    "kernel32" Alias "GetPrivateProfileStringA" _
    (ByVal lpApplicationname As String, ByVal _
    lpKeyName As String, ByVal lpDefault As _
    String, ByVal lpReturnedString As String, _
    ByVal nSize As Long, ByVal lpFileName As _
    String) As Long'
    '读INI文件.
    '函数:GetIniStr
    '参数:AppName 项目名.In_Key 键名,sFileName 文件名
    '返回值:成功:对应的键值.失败或不存在:""
    Public Function GetIniStr(ByVal AppName As String, ByVal In_Key As String, ByVal sFileName As String) As String
        
        On Error GoTo GetIniStrErr
        
        If VBA.Trim$(In_Key) = "" Then
           GoTo GetIniStrErr
        End If    Dim GetStr As String
        GetStr = VBA.String(128, 0)
        GetPrivateProfileString AppName, In_Key, "", GetStr, 256, sFileName
        GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")
        If GetStr = "" Then
           GoTo GetIniStrErr
        Else
           GetIniStr = GetStr
           GetStr = ""
        End If
        Exit FunctionGetIniStrErr:
           Err.Clear
           GetIniStr = ""
           GetStr = ""
    End Function'
    '写INI文件.
    '函数:WriteIniStr
    '参数:AppName 项目名.In_Key 键名,In_Data 键值,sFileName 文件名
    '返回值:成功=TRUE.失败=FALSE
    Public Function WriteIniStr(ByVal AppName As String, ByVal In_Key As String, ByVal in_data As String, ByVal sFileName As String) As Boolean
        On Error GoTo WriteIniStrErr
        WriteIniStr = True
        If VBA.Trim(in_data) = "" Or VBA.Trim(In_Key) = "" Or VBA.Trim(AppName) = "" Then
           GoTo WriteIniStrErr
        Else
         WritePrivateProfileString AppName, In_Key, in_data, sFileName
        End If
        Exit Function
        
    WriteIniStrErr:
           Err.Clear
           WriteIniStr = False
    End Function
      

  5.   

    用vb自带的dir函数也可以,具体的可以看看这个:
    http://www.yesky.com/20000918/114872.shtml不过,用递归速度是个问题