用vb实现ftp的上传下载

    技术2022-05-11  78

     

    Option   Explicit Public  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   Long Public  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   Long 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 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 Public  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   Integer 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      Public  Declare  Function  InternetFindNextFile Lib  " wininet.dll "  Alias  " InternetFindNextFileA "  _(ByVal hFind  As   Long , lpvFndData  As  WIN32_FIND_DATA)  As   Long Public  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 Sub Private   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

    最新回复(0)