VB6
 
如何查找指定后缀的文件,包含所有子目录,将结果置于List中?
 例如要查找F:\Test 及其所有子目录下的*.dat文件,并把结果置于List中我是新手,尽量简单些

解决方案 »

  1.   

    shell "dir f:\test\*.dat /a /s /h >f:\test\a.txt"
    open "f:\test\a.txt" for input as #1
    ...
      

  2.   

    哎呀,要手把手教呀...Shell "cmd /c dir e:\myprog\*.dat /a /s >e:\a.txt"cmd-使用控制台../c执行后面的字符串命令
    dir-列目录,文件 /a 包含存档文件,/s 包含子目录,>管道重定义,就是把输出改变到文件e:\a.txt和>相关的有>>:在文件末尾增加,<输入来自文件(文件里面是多个命令,多个输入)
      

  3.   

    呃,这次的代码是可以了,谢谢
    不过我想是输出到List控件中,输出路径+文件名,这个看怎么读取合适
    大侠也帮看看?
      

  4.   

    dim s as string
    Shell "cmd /c dir /a-d /b /s e:\myprog\*.dat >e:\a.txt",vbHide
    List1.Clear
    open "e:\a.txt" for input as #1
    do
     if eof(1) then exit do
     line input #1,s
     List1.AddItem s
    loop
    close #1
      

  5.   

    多谢几位的帮忙 现在有这么个问题
    第一次读取后,list中并没有任何内容,再次读取一下才可以,就像是txt没有被刷新一下
    看以下代码:Private Sub Command1_Click()
    Shell "cmd /c dir F:\T6SOFT\*.mdf /b/a /s >f:\mdf.txt", vbHide
    List1.Clear
    Open "f:\mdf.txt" For Input As #1
    Do
    If EOF(1) Then Exit Do
    Input #1, s
    List1.AddItem s
    Loop
    Close #1
    End Sub
    我点击一下command1,list中没有任何内容,再点击一下才可以
    请教高手如何解决这个问题呢?
      

  6.   

    参考这个
    Private Sub Command1_Click()'找出文件夹内文件最新的更新时间(包括里面的子文件夹的文件哈) 要把这个文件夹内的所有文件的最后修改时间都要检查一次,并取出近的一个时间,(主要是检查这个文件夹里面的内容有没有更新),并取出这个文件最后一次的更新时间.环境是VB6
    Dim after As Double
    Dim f As Integer
    Dim dn As String
    Dim fn As String
    Dim ft As String
    Dim ft_date As Date
    Command1.Enabled = FalseOn Error GoTo ERR0
    Kill "c:\files.txt"dn = "c:\windows"
    On Error GoTo ERR1
    Shell ("cmd /c dir " & dn & "\*.* /a-d /b /s /o-d >c:\files.txt")
    after = Now + 60# / 3600# / 24#
    f = FreeFile()
    Do
    REOPEN1:
        DoEvents
        If Now > after Then
            MsgBox "Wait c:\files.txt 60s overtime!"
            Exit Sub
        End If
        Open "c:\files.txt" For Input Lock Read Write As #f
        Line Input #f, fn
        Close #f
        Exit Do
    LoopOn Error GoTo ERR0
    Kill "c:\files.txt"On Error GoTo ERR2
    Shell ("cmd /c dir " & Chr(34) & fn & Chr(34) & ">c:\files.txt")
    after = Now + 60# / 3600# / 24#
    f = FreeFile()
    Do
    REOPEN2:
        DoEvents
        If Now > after Then
            MsgBox "Wait c:\files.txt 60s overtime!"
            Exit Sub
        End If
        Open "c:\files.txt" For Input Lock Read Write As #f
        Line Input #f, ft
        Line Input #f, ft
        Line Input #f, ft
        Line Input #f, ft
        Line Input #f, ft
        Line Input #f, ft
        Close #f
        Kill "c:\files.txt"
        Exit Do
    Loop
    ft = Left(ft, 17)
    ft_date=CDate(ft)
    MsgBox "The newest file in [" & dn & "] is [" & fn & "], datetime is [" & ft_date & "]"
    Command1.Enabled = True
    Exit Sub
    ERR0:
        Resume Next
    ERR1:
        Resume REOPEN1
    ERR2:
        Resume REOPEN2
    End Sub