知道用户名密码和FTP地址, 怎么登陆该FTP, 如何上传下载文件如何取FTP空间中的文件列表?\怎么知道上传和下载是否成功(最好能有个进度条显示)高手帮帮忙.我知道直接要代码很不对,但我还是想要...

解决方案 »

  1.   

    http://www.vbgood.com/vb.good/code-do-view-codeid-1107.html
      

  2.   

    给你几个涵数,你去看看怎么用
    '***********************  FtpGetFile                **************************************
    Public Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
        (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
        ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
        ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
        ByVal dwContext As Long) As Boolean'***********************  FtpPutFile                **************************************
    Public Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" _
        (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _
        ByVal lpszRemoteFile As String, ByVal dwFlags As Long, _
        ByVal dwContext As Long) As Boolean'***********************  FtpFindFirstFile          **************************************
    Public Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _
    (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
          lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long'***********************  InternetFindNextFile      **************************************
    Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _
        (ByVal HFind As Long, lpvFndData As WIN32_FIND_DATA) As Long'***********************  FileTimeToLocalFileTime   **************************************
    Public Declare Function FileTimeToLocalFileTime Lib "kernel32" _
        (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long'***********************  FileTimeToSystemTime      **************************************
    Public Declare Function FileTimeToSystemTime Lib "kernel32" _
        (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
    '***********************  Get Integer from "*.ini" File **********************************
    Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" _
                            (ByVal lpApplicationName As String, ByVal lpKeyName As String, _
                            ByVal nDefault As Long, ByVal lpFileName As String) As Long
    '*********************** FindClose                  **************************************
    Public Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
    '***********************  GetLocalTime              **************************************
    Public Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)                   
    '***********************  GetOpenFileName           **************************************
    Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" _
        (pOpenfilename As OpenFileName) As Long
      

  3.   

    用vb实现ftp的上传下载
    选择自 liuxiaoyi666 的 Blog  
    http://blog.csdn.net/liuxiaoyi666/Option ExplicitPublic Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
    (ByVal sAgent As String, ByVal LAccessType As Long, ByVal sProxyName As String, _
    ByVal SProxyBypass As String, ByVal lFlags As Long) As LongPublic Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _
    (ByVal hInternetSession As Long, ByVal sServerName As String, _
    ByVal nServerPort As Integer, ByVal sUsername As String, _
    ByVal sPassword As String, ByVal lService As Long, _
    ByVal lFlags As Long, ByVal lContext As Long) As LongPublic Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _
    (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
    ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
    ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As BooleanPublic Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" _
    (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, _
    ByVal lpszRemoteFile As String, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As BooleanPublic Declare Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" _
      (ByVal hFtpSession As Long, ByVal lpszFileName As String) As Boolean
      
    Public Declare Function FtpRenameFile Lib "wininet.dll" Alias "FtpRenameFileA" _
      (ByVal hFtpSession As Long, ByVal lpszExsiting As String, ByVal lpszNew As String) As Boolean
      
    Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As IntegerPublic Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _
       (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
        lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, _
        ByVal dwContent As Long) As Long
        
    Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _
    (ByVal hFind As Long, lpvFndData As WIN32_FIND_DATA) As LongPublic Type FILETIME
      dwLowDateTime As Long
      dwHighDateTime As Long
    End Type
    Public Type WIN32_FIND_DATA
       dwFilAttributes As Long
       ftCreationTime As FILETIME
       ftLastAccessTime As FILETIME
       ftLastWriteTime As FILETIME
       nFileSizeHigh As Long
       nFileSizeLow As Long
       dwReserved0 As Long
       dwReserved1 As Long
       cFileName As String * 260
       cAlternate As String * 14
    End Type 
    Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
            "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
     
    Type OPENFILENAME
         lStructSize As Long
         hwndOwner As Long
         hInstance As Long
         lpstrFilter As String
         lpstrCustomFilter As String
         nMaxCustFilter As Long
         nFilterIndex As Long
         lpstrFile As String
         nMaxFile As Long
         lpstrFileTitle As String
         nMaxFileTitle As Long
         lpstrInitialDir As String
         lpstrTitle As String
         flags As Long
         nFileOffset As Integer
         nFileExtension As Integer
         lpstrDefExt As String
         lCustData As Long
         lpfnHook As Long
         lpTemplateName As String
    End Type
    Private Sub Command1_Click()
    lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
       vbNullString, vbNullString, 0&)
    If lnginet Then
      lnginetconn = InternetConnect(lnginet, "ip地址", 0, _
            "用户名", "密码", 1, 0, 0)
      If lnginetconn Then
          blnRC = FtpGetFile(lnginetconn, "website/address.asp", "c:\address.asp", 0, 0, 1, 0)
          If blnRC Then
            MsgBox "download ok!!!"
          End If
          InternetCloseHandle lnginetconn
          InternetCloseHandle lnginet
          MsgBox "close ok!!!"
      Else
         MsgBox "can't connect"
      End If
    Else
         MsgBox "ftp wrong"
    End If
    End SubPrivate Sub Command2_Click()
    Dim pData As WIN32_FIND_DATA
    Dim lngHINet As Long
    Dim intError As Integer
    Dim strTemp As String
    Dim blnRC As Boolean
    pData.cFileName = String(260, 0)
    lnginet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_PRECONFIG, _
       vbNullString, vbNullString, 0&)
    If lnginet Then
      lnginetconn = InternetConnect(lnginet, "IP地址", 0, _
            "用户名", "密码", 1, 0, 0)
       If lnginetconn Then
       lngHINet = FtpFindFirstFile(lnginetconn, "*.*", pData, 0, 0)
       strTemp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)
       Do
          pData.cFileName = String(260, 0)
          blnRC = InternetFindNextFile(lngHINet, pData)
          If Not blnRC Then
              Exit Do
          Else
             strTemp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0), vbBinaryCompare) - 1)
          End If
          
       Loop
       Text1.Text = strTemp
      End If
      End If
       InternetCloseHandle lngHINet
       
       InternetCloseHandle lnginetconn
          InternetCloseHandle lnginet
       
       
    End Sub