各位大侠,怎样得到一个目录下所有文件的文件名

解决方案 »

  1.   

    filename=dir("c:\*.*")
    i = 0
    do while filename = ""
    array1 (i)=filename
    i = i + 1
    filename = dir("c:\*.*")
    loop
    '//////////////////////////// 或
    Dim strFile, strTmp, strFileArr() As String
        strFile = Dir("*.*", vbArchive)
        i = 1
        While strFile <> ""
          strTmp = strTmp & "," & strFile
          i = i + 1
          strFile = Dir
        Wend
        ReDim strFileArr(1 To i)
        strFileArr = Split(strTmp, ",")别人的代码,你试试看
      

  2.   

    昨天不是才有人在问吗?
    1,文件夹和文件都访问
    dir就可以实现,
    先用ChDir 把当前路径改到需要的地方。然后用dir可以返回了,如果为空就立即退出循环,否则错误
    ChDir "X:\xxx\"
    s=dir
    do until s=""
      debug.print s
      s=dir
    loop
    2,只访问文件
    用FileListBox,直接指定Path属性即可或者用以下方法
    '引用Microsoft Scripting Rumtime
    Private Sub Form_Load()
        Dim Fso As New FileSystemObject
        Dim Fd As Folder
        Dim Fd1 As Folder
        Dim Fl As File
        Set Fd = Fso.GetFolder("C:")
        For Each Fd1 In Fd.SubFolders
            Debug.Print Fd1.Name
        Next
        For Each Fl In Fd.Files
            Debug.Print Fl.Name
        Next
    End Sub
      

  3.   

    看到给30分,就给你三种选择
    1.用filelistbox控件,这个最简单
    2.用dir,同上
    3.用api findfirst(),FindNext(),FindCLose()三个函数
      

  4.   

    还是建议你用FSO对象简单易读。
      

  5.   

    以下实例列出指定目录(便中为D:\)下的所有文件名   及取得其后缀文件名!!!使用如下代码之前,先在工程-引用   Microsoft Scripting Runtime 库。
    在窗体中添加一个按钮Command1,复制如下代码即可。功能:列举出D:\下的所有文件名,和对应扩展名
    代码如下:Dim LfileSys As New Scripting.FileSystemObject
    Private Sub Command1_Click()    Dim Lfiles As Files
        Dim lfile As File
        Dim i As Integer
        Dim strEx As String
        Dim strTmp As String    Set Lfiles = LfileSys.GetFolder("D:\").Files
        For Each lfile In Lfiles
            i = InStrRev(lfile.Name, ".")
            strEx = Right(lfile.Name, Len(lfile.Name) - i + 1)
            strTmp = strTmp & vbCrLf & "文件名为:    " & lfile.Name & Space(8) & strEx
        Next    MsgBox strTmpEnd Sub
      

  6.   

    不管怎么做都要用遍历的方法???
    Private Sub Command1_Click()
    dirs "c:\download"
    End SubSub dirs(ByVal mydir As String)
    If Dir("d:\xxxx.txt") > "" Then Kill "d:\xxxx.txt"
    Shell "cmd.exe /C cd && dir  " & mydir & "\*.* /b >> d:\xxxx.txt"
    Shell "notepad.exe d:\xxxx.txt", vbNormalFocus
    End Sub