請教一下
小弟目前有一個使用 wininet.dll 寫的 ftp 程式,現在被告知由於主機端的改變,所以在下 get 指令之前得先下一個

quote c type 950
但我查不到如何使用 wininet API 來下這個指令,還是一定得用 winsock 呢?
謝謝
創作者介紹

小吳 VBQA 程式設計討論

vbqa 發表在 痞客邦 PIXNET 留言(6) 人氣()


留言列表 (6)

發表留言
  • 心冷熱情熄
  • 我自己沒碰過,但你有試過在用 FtpGetFile 前先下命令嗎?
    如果是 Get 之前,那應該是在
    FtpSetCurrentDirectory 或 FtpFindFirstFile 之後吧...
  • 天呀
  • 感謝你的回覆,問題是我現在還找不到 wininet API 這個指令怎麼下,才會等於在Dos模式下的Quote c type 950呢
  • YPK
  • 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 有錯嗎
  • YPK
  • 這個你可以使用 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中如何寫
找更多相關文章與討論