先引用Microsoft script runtime
然后
Dim g_FX As New FileSystemObject
Dim g_FY As Folder
Dim g_FZ As File
Set g_FY = g_FX.GetFolder("文件夹路径\文件夹名")
For Each g_FZ In g_FY.Files
        List1.AddItem Right(g_FZ.Name, 3)
End If

解决方案 »

  1.   

    请问是先引用Microsoft script runtime
    什么意思
    list1是什么控件,filelistbox没有additem
      

  2.   

    在菜单上找到工程这一项,工程——引用——Microsoft Scrioting Runtime
    只有引用了,vb才会识别下面的代码。list控件就在filelistbox往上数第三个
      

  3.   

    To:naomi77(naomi77) 
    你没见过没有扩展名的文件和*.mpeg文件吗?To:wudid007(小小鸟) FILELIST控件中的文件名本来就是有扩展名的啊,如果你想提出每一个文件的扩展名,可以用以下函数。function GetFileType (ByVal FileName as string) as string
    dim i as integer
    i=instrrev(filename,".")
    getfiletype=iif(i>0,right(filename,len(filename)-i),"")
    end function如果你是在FILELIST中查找,可以用FILELIST的LIST属性和LISTCOUNT属性来实现。
    如:
    dim i as integer
    for i=0 to file1.listcount-1
       if file1.list(i)=你要查找的文件名 then
        exit for
        end if
    next
    file1.select(i)=true你要查找的文件名中包含扩展名。
      

  4.   

    naomi77的方法不行,因为文件的扩展名名并都是三个字母,如jpeg、mpeg、html等,甚至可以没有扩展名,在FILELIST中如果parrern用默认值*.*的话应该能显示扩展名。解决的思路是查找最后一个小数点"."的位置,分找到和没找到两种情况分别处理
      

  5.   

    引用后粘贴以下代码可解决“扩展名只能3位”的问题,经调试成功:
    Dim g_FX As New FileSystemObject
    Dim g_FY As Folder
    Dim g_FZ As File
    Dim w As String
    Private Sub Form_Load()
    Set g_FY = g_FX.GetFolder("c:\vb")
    For Each g_FZ In g_FY.Files
           For i = 1 To Len(g_FZ)
           If Mid(g_FZ, i, 1) = "." Then
           w = i
           List1.AddItem Right(g_FZ.Name, Len(g_FZ) - w)
           End If
            Next i
              
            Next
    End Sub