关于FTP的WINDOWS API函数

 
关于FTP的WINDOWS API函数

关于FTP的WINDOWS API函数

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  

在做FTP时,    
手工能PING通FTP服务器,  
但程序中使用该函数时,为什么常常出现返回值为0,  
而导致连接不上FTP服务器,    

Public   Declare   Function   ftpOpenFile   Lib   "wininet.dll"   Alias   "ftpopenfilea"   _  
        (ByVal   hFtpSession   As   Long,   ByVal   lFlags   As   Long,   ByVal   lContext   As   Long)   As   Long  

此参数lContext——要打开的文件的描述表标识符,请问具体参数意义,如何设置?  
该函数是否与断点续传有关?  


---------------------------------------------------------------  

建议查看MSDN,还有什么比它更完整  
---------------------------------------------------------------  

Option   Explicit  

'########################################################################  
'##                                                                                                                                         ##  
'##                                                         FTPAPI声明                                                             ##  
'##                                                                                                                                         ##  
'########################################################################  


Public   Const   ERROR_NO_MORE_FILES   =   18  
Public   Const   ERROR_INTERNET_EXTENDED_ERROR   =   12003  
   
Public   Const   FTP_TRANSFER_TYPE_BINARY   =   &H2  
Public   Const   FTP_TRANSFER_TYPE_ASCII   =   &H1  
   
Public   Const   INTERNET_FLAG_PASSIVE   =   &H8000000  
Public   Const   INTERNET_FLAG_RELOAD   =   &H80000000  
Public   Const   INTERNET_FLAG_KEEP_CONNECTION   =   &H400000  
Public   Const   INTERNET_FLAG_MULTIPART   =   &H200000  
   
Public   Const   INTERNET_OPEN_TYPE_PRECONFIG   =   0  
Public   Const   INTERNET_OPEN_TYPE_DIRECT   =   1  
Public   Const   INTERNET_OPEN_TYPE_PROXY   =   3  
   
Public   Const   INTERNET_INVALID_PORT_NUMBER   =   0  
   
Public   Const   INTERNET_SERVICE_FTP   =   1  
Public   Const   INTERNET_SERVICE_GOPHER   =   2  
Public   Const   INTERNET_SERVICE_HTTP   =   3  

Public   Const   MAX_PATH   =   260  
Public   Const   NO_ERROR   =   0  
Public   Const   FILE_ATTRIBUTE_READONLY   =   &H1  
Public   Const   FILE_ATTRIBUTE_HIDDEN   =   &H2  
Public   Const   FILE_ATTRIBUTE_SYSTEM   =   &H4  
Public   Const   FILE_ATTRIBUTE_DIRECTORY   =   &H10  
Public   Const   FILE_ATTRIBUTE_ARCHIVE   =   &H20  
Public   Const   FILE_ATTRIBUTE_NORMAL   =   &H80  
Public   Const   FILE_ATTRIBUTE_TEMPORARY   =   &H100  
Public   Const   FILE_ATTRIBUTE_COMPRESSED   =   &H800  
Public   Const   FILE_ATTRIBUTE_OFFLINE   =   &H1000  

Public   Const   INTERNET_DEFAULT_FTP_PORT   =   21  
Public   Const   INTERNET_DEFAULT_GOPHER_PORT   =   70  
Public   Const   INTERNET_DEFAULT_HTTP_PORT   =   80  
Public   Const   INTERNET_DEFAULT_HTTPS_PORT   =   443  
Public   Const   INTERNET_DEFAULT_SOCKS_PORT   =   1080  


Public   Type   FILETIME  
                dwLowDateTime   As   Long  
                dwHighDateTime   As   Long  
End   Type  

Public   Type   WIN32_FIND_DATA  
                dwFileAttributes   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   *   MAX_PATH  
                cAlternate   As   String   *   14  
End   Type  


'连接FTP服务器的操作函数  

'打开连接internet的会话  
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  
'sAgent--要调用internet对话的应用程序名  
'lAccessType--请求的访问的类型,包括:  
'INTERNET_OPEN_TYPE_PRECONFIG---预配置(缺省)  
'INTERNET_OPEN_TYPE_DIRECT--直接指向internet  
'INTERNET_OPEN_TYPE_PROXY--通过代理服务器连接  
'sProxyName--如果lAccessType被设置为INTERNET_OPEN_TYPE_PROXY,该参数为  
'代理服务器的名字  
'sProxyBypass--包含一系列代理服务器地址的字符串  
'lFlags--会话的选项,可包括下列值:  
'INTERNET_FLAG_DONT_CACHE--不对数据进行本地缓冲或通过网关服务器缓冲  
'INTERNET_FLAG_ASYNC--当操作完成时,将同INTERNET_STATUS_REQUEST_COMPLETE  
'一起进行一个状态回调  
'INTERNET_FLAG_OFFLINE--只通过永久缓冲进行下载操作  

'打开一个根据连接类型的Internet连接  
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  
'hInternetSession--函数InternetOpen()打开Internet对话返回的值  
'sServerName--要连接的服务器的名称或IP  
'nServerPort--该连接的Internet端口  
'sUsername--登录的用户帐号  
'sPassword--登录的口令  
'lService--要连接的服务器类型(这里是连接FTP服务器,连接的类型为常数INTERNET_SERVICE_FTP)  

'关闭Internet连接  
Public   Declare   Function   InternetCloseHandle   Lib   "wininet.dll"   _  
(ByVal   hInet   As   Long)   As   Integer  
'hInet--InternetConnect()函数返回的值  

'文件查找操作  

'在FTP连接中查找一个文件。在调用此函数后取得第一个文件后,可以接着调用FtpFindNextFile()  
'获得下一个查到的FTP服务器上的文件。  
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  
'lpszSearchFile--指向要搜索的文件名。可以通配符*.*的形式。  
'lpFindFileData--用于装载与找到的文件有关的具体信息  
'dwFlags--数据传输的方式,通常设置为0,(ASCII方式)  

'继续由FtpFindFirstFile()函数发起的文件搜索操作  

Public   Declare   Function   InternetFindNextFile   Lib   "wininet.dll"   Alias   "InternetFindNextFileA"   _  
        (ByVal   hFind   As   Long,   lpvFindData   As   WIN32_FIND_DATA)   As   Long  
'hFind--FtpFindFirstFile()函数的返回值  
'lpvFindData--用于装载与找到的文件有关的具体信息  

'目录操作  

'改变FTP服务器的当前目录。  
Public   Declare   Function   FtpSetCurrentDirectory   Lib   "wininet.dll"   Alias   "FtpSetCurrentDirectoryA"   _  
        (ByVal   hFtpSession   As   Long,   ByVal   lpszDirectory   As   String)   As   Boolean  
'lpszDirectory--包含要到达的目录名。可以是相对的或绝对的路径。  

'在ftp服务器上创建目录  
Public   Declare   Function   FtpCreateDirectory   Lib   "wininet.dll"   Alias   "FtpCreateDirectoryA"   _  
        (ByVal   hFtpSession   As   Long,   ByVal   lpszDirectory   As   String)   As   Boolean  
'lpszDirectory--包含要创建目录的字符串,可以是一个相对路径或绝对路径  

'取得ftp当前的目录的名字  
Public   Declare   Function   FtpGetCurrentDirectory   Lib   "wininet.dll"   Alias   "FtpGetCurrentDirectoryA"   _  
        (ByVal   hFtpSession   As   Long,   lpszCurrentDirectory   As   String,   lpdwCurrentDirectory   As   Long)   As   Boolean  
'lpszCurrentDirectory--存放目录名字的字符串  
'lpdwCurrentDirectory--目录名字字符串的字节数  

'删除ftp服务器的一个目录  
Public   Declare   Function   FtpRemoveDirectory   Lib   "wininet.dll"   Alias   "FtpRemoveDirectoryA"   _  
        (ByVal   hFtpSession   As   Long,   ByVal   lpszDirectory   As   String)   As   Boolean  
'lpszDirectory--要删除的目录名称,可以是相对路径或绝对路径  

'文件操作  

'从ftp服务器上取得一个文件并保存在本地机器上,此函数包括了与从一个FTP服务器中读取一个文件  
'并在本地保存等操作有关的所有功能  

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  
'lpszRemoteFile--包含FTP服务器中要读的文件名  
'lpszNewFile--在本地机器中要创建的文件名  
'fFailIfExists--当为TRUE时,如果文件已经存在,则调用失败  
'dwFlagsAndAttributes--文件的属性  
'dwFlags--文件的传输方式可能包括下列值:  
'FTP_TRANSFER_TYPE_ASCII--使用可以将控制和格式信息转换到本地对应文件的ASCII传输方式  
'FTP_TRANSFER_TYPE_BINARY--使用把文件作为一个连续数据流传输的FTP图象传输方式,这种方式  
'不区别在文件内部数据结构之间的任何分界(如行结束的回车标记)  
'dwContext--要取回的文件的描述表标识符  
             
'把一个文件上栽到FTP服务器上。其中包括了要将一个文件上载到FTP服务器上所有的有关操作  

Public   Declare   Function   FtpPutFile   Lib   "wininet.dll"   Alias   "FtpPutFileA"   _  
(ByVal   hFtpS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值