請教一下
小弟目前有一個使用 wininet.dll 寫的 ftp 程式,現在被告知由於主機端的改變,所以在下 get 指令之前得先下一個
quote c type 950
但我查不到如何使用 wininet API 來下這個指令,還是一定得用 winsock 呢?
謝謝
小弟目前有一個使用 wininet.dll 寫的 ftp 程式,現在被告知由於主機端的改變,所以在下 get 指令之前得先下一個
quote c type 950
但我查不到如何使用 wininet API 來下這個指令,還是一定得用 winsock 呢?
謝謝
文章標籤
全站熱搜

我自己沒碰過,但你有試過在用 FtpGetFile 前先下命令嗎? 如果是 Get 之前,那應該是在 FtpSetCurrentDirectory 或 FtpFindFirstFile 之後吧...
感謝你的回覆,問題是我現在還找不到 wininet API 這個指令怎麼下,才會等於在Dos模式下的Quote c type 950呢
Public Declare Function FtpCommand Lib "wininet.dll" Alias "FtpCommandA" _ (ByVal hConnect As Long, ByVal fExpectResponse As Boolean, _ ByVal dwFlags As Long, ByVal lpszCommand As String, _ ByVal lContext As Long, phFtpCommand As Long) As Boolean bRet = FtpCommand(hConnection, False, FTP_TRANSFER_TYPE_ASCII, "quote type c 950", 0, hFile) 不過請注意一下,似乎不是所有的 wininet 版本都有這個函數,不過裝了某個版本(5.1 ???)以後的IE 的 wininet 就有這個函數了。以前我也曾被這個問題困擾許久,有了 FtpCommand 這個函數,你就可以下 dos ftp 下的指令
bRet = FtpCommand(hConnection, False, FTP_TRANSFER_TYPE_ASCII, "quote type c 950", 0, hFile) 我執行時bRet一直是false 而執行 bRet = FtpCommand(hConnection, False, FTP_TRANSFER_TYPE_ASCII, "PWD", 0, hFile)則是true 是quote type c 950 有錯嗎
這個你可以使用 dos 下的 ftp 執行 quote type c 950 看看,以前我處過一樣的問題,客戶的 AS 400 上的 ftp server 做了變更,我試過是可行的,也是過Redhat linux 7.1 下的 wu-2.6.2-5 FTP server。上面的指令是可行的。
Ftp command好像和Dos底下的ftp指令不同,如同http://www.tsnien.idv.tw/book-2/chap14/chap14-5.htm 所介紹的ftp Command一樣,這些好像才可以用在ftpcommand的API中,像Dos Ftp中的open,close好像就不適用在這個API使用,所以我才想再請教各位前輩,Dos底下的quote type c 950這個指令,在FtpCommand的API中如何寫