请教一个思路:
我现在想用vb获取ftp目录下的所有文件的名称
如何做呢?

解决方案 »

  1.   

    首先获得ftp站点路径,然后调用dir函数即可:    strFile = Dir(路径 & "\*.*", vbArchive)
        i = 1
        While strFile <> ""
          strTmp = strTmp & "," & strFile
          i = i + 1
          strFile = Dir
        WendstrTmp 里就是该路径下所有文件名(逗号隔开)
      

  2.   

    sorry,如果是远程站点,这个方法可能涉及到权限问题;所读的ftp站点是本机的站点的话应该满足了。
      

  3.   

    不行,strFile总是返回空字符传
    我在msdn上找的:
    该示例使用 OpenURL 属性来检索 FTP 服务器的目录。要运行该示例,在窗体中放置一个 Internet Transfer 控件和一个 RichTextBox 控件。然后,把这段代码粘贴到声明部分。按 F5 键运行此例,并双击此窗体。Private Sub Form_DblClick()
       Inet1.AccessType = icUseDefault
       RichTextBox1.Text = Inet1.OpenURL _
       (InputBox("URL", , "ftp://ftp.ncdc.noaa.gov")) '
    End Sub提示错误:连接超时
    用webbrowser 控件可以打开,但是不响应右键,无法返回文件名,
    请高手指点~~~~~加分
      

  4.   

    ' 获取 FTP 当前目录内容    hFind = FtpFindFirstFile(InterConn, "/books", pData, 0, 0)      ' 查找第一个文件或目录
        nLastError = Err.LastDllError                                 ' 没有错误返回0
        If hFind = 0 Then
            If (nLastError = ERROR_NO_MORE_FILES) Then
                MsgBox "This directory is empty!"
            Else
                ErrorOut nLastError, "FtpFindFirstFile"
            End If
            Exit Sub
        End If
        strItem = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0)))
        With MSHFlexGrid1
            .Row = 1
            .Col = 0
            .Text = strItem
            '得到此文件的大小
            Command4_Click
            MSHFlexGrid1.Col = 1
            MSHFlexGrid1.Text = FtpFS
        End With
        
        ' 查找 FTP 目录中的下一个文件。
        If hFind <> 0 Then bRet = True
        Do While bRet
            bRet = InternetFindNextFile(hFind, pData)
            If bRet Then
                strItem = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0)))
                With MSHFlexGrid1
                    .Rows = .Rows + 1
                    .Row = .Rows - 1
                    .Col = 0
                    .Text = strItem
                    '得到此文件的大小
                    Command4_Click
                    .Col = 1
                    .Text = FtpFS
                End With
            End If
        Loop我是这么做的,通过
    函数你得写进去