- - PR -
WININETでのFtpFilePutについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-11 15:30
VB.NETでwininet.dllを利用して,ファイル転送を行いたいと
考えています。 VB6の時に同様の開発経験があります。 ところが,FtpPutFileだけがどうしてもうまくいきません。 FtpGetFileはうまくいきます。 ずっとはまっております。 mintNetConn = InternetOpen("TEST", INTERNET_OPEN_TYPE_PRECONFIG,NullString, vbNullString, 0) mintFtpConn = InternetConnect(mintNetConn, "Server", "21", "user", "password", INTERNET_SERVICE_FTP, 0, 0) ret=FtpPutFile(mintFtpConn, "D:\ABCD.txt", "/ABCD.txt", 2, 0) mintNetConn,mintFtpConnは0以外を返しますが,retが0になります。 その際のErr.LastDllErrorは18を返します。 エラー18はERROR_NO_MORE_FILESに相当するので,ローカルのファイルが認識 できないのかと思ってのですが,良く分かりません。 下記は念のため,宣言です。 <DllImport("WinInet")> _ Private Shared Function FtpPutFile(ByVal hFtpSession As Long _ , ByVal lpszLocalFile As String _ , ByVal lpszNewRemoteFile As String _ , ByVal dwFlags As Integer _ , ByVal dwContext As Integer) As Boolean End Function FTPサーバはWindowsサーバです。 以下は確認済みです。 ・D:\ABCD.txtは存在する。ファイル属性は通常。 ・ftpコマンドから同ファイルをputすることは可能。 よろしくお願いします。 | ||||
|
投稿日時: 2006-02-11 15:44
自己解決です。
FtpPutFile関数の引数「hFtpSession」の型は longではなくてintegerでした。 それを直したらうまくいきました。 | ||||
|
投稿日時: 2006-02-11 17:16
Integer ではなく、System.IntPtr を使うべきかと。(2 箇所該当)
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-02-12 01:48
ここで検索してみるとか、
時たま間違ってたり無かったりするけど http://www.pinvoke.net/ |
1