在线等

解决方案 »

  1.   

    我觉得你使用commondialog没什么意义啊~
      

  2.   

    加一个FileListBox!设其Pattern属性为"*.java",在commonDialog返回文件路径时,把FileListBox的Path属性设为该路径!那么在FileListBox里的就是所有的*.java文件了!子目录得写个算法...现在不方便!呵呵
      

  3.   

    filter属性设置为"你的文件描述|*.java",index属性设为1
      

  4.   

    如果不用commonDialog,用什么好,能具体点么
      

  5.   

    如果要包括子目录的话,那不写代码是不可能实现的。
    给你个思路:
    先在窗体上放一个DirListBox,设成不可见(dir函数不能递归调用,所以使用dirlistbox得到目录具体内容)
    然后用两个数组,一个记录目录,一个记录文件,按顺序扫描就是了
      

  6.   

    来,楼主用我的吧!代码如下(vbs写的):dim aimdir,aimex'定义目标文件夹和后缀名
    sub hk(specf,exname)
        on error resume next
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.Getfolder(specf)
         set fa=f.files
    for each kkkk in fa
        if fso.getextensionname(kkkk.name)=exname then
    msgbox kkkk.path
        end if
    next
        set nextfolders = f.subfolders
        for each subfolder in nextfolders'递归调用
            hk subfolder,exname
        next
    end sub
    aimdir=inputbox("输入你所要查找的文件夹的路径")
    aimex=inputbox("输入你所要查找的文件类型,如java,mp3...")
    hk aimdir,aimex把以上代码保存成.vbs文件,运行即可:)
      

  7.   

    包括子目录的功能没有实现转:
    Private Sub Command1_Click()
        CommonDialog1.FileName = ""
        CommonDialog1.Filter = "All Files|*.*"
        CommonDialog1.Flags = cdlOFNAllowMultiselect Or cdlOFNExplorer
        CommonDialog1.Action = 1
      
        Dim s As String
        s = CommonDialog1.FileName
        Dim arr
        arr = Split(s, Chr(0)) '不同的系统分割符可能不同,我这是在2000下
        Dim path As String
        Dim file1 As String
        Dim i As Long
        i = InStrRev(arr(0), "\")
        List1.Clear
        If i > 0 Then
            path = Left(arr(0), i - 1)
            If UBound(arr) >= 1 Then
                For i = 1 To UBound(arr)
                    List1.AddItem path + "\" + arr(i)
                Next
            Else
                List1.AddItem s
            End If
        End If
    End Sub
      

  8.   

    回复人: rainstormmaster(暴风雨 v2.0) ( ) 信誉:185  2004-3-25 11:15:17  得分:50 你这样做太麻烦了,而且用dirlistbox界面也不美观,建议这样://像点击文件夹“浏览”按钮后,弹出浏览对话框,浏览确定后返回原来的对话框并得到的路径值返回到TextBox.text
    '一个窗体即可
    '一个按钮一个textbox
    Private Sub Command1_Click()
        Dim myShell As Object
        Set myShell = CreateObject("Shell.Application")
        Dim s As String
        Dim mfolder As Object
        '调用系统的浏览文件夹对话框
        Set mfolder = myShell.BrowseForFolder(Me.hWnd, "请选择文件夹", 1)
        If Not mfolder Is Nothing Then
            s = mfolder.Self.Path
            Text1.Text = s
        End If
        Set mfolder = Nothing
        Set myShell = Nothing
    End Sub
    当然上述过程用api实现也可,用api实现的代码网上有很多,我就不写了:)
      

  9.   

    //大坏蛋:核对扩展名处理时不起作用,知道怎么回事么?什么意思?我这里没问题啊,你只需要在第一个inputbox里填入地址,例如c:\windows,确定后在第二个inputbox里填入后缀名,例如exe,再确定就可以了。
    所有符合你条件的文件名的路径都会以msgbox的形式弹出!