掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.netでFTP受信を行うには? (ID:85683)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>この場合は、As Integer / As Int32 でしょう。 Longで宣言したのでハンドルに32ビット分のごみが付いたのかしら。(^^; 昔作った動作する実績のあるコードを載せます。 早く出せ!と怒られるかも知れませんが、実は相性の問題で 現在使用しているシステムは.Netの環境を抜いてあります。 昔のハードディスクを引っ張り出し現在の物とchangeしました。 リムーバブルになってます(^^ 関係有りませんが。 これがめんどくさかったので今までVB6のコードを見てレスしてました。 Imports System.Text Imports System.Runtime.InteropServices Public Class Form1 Inherits System.Windows.Forms.Form Private Const INTERNET_OPEN_TYPE_DIRECT As Integer = 1 Private Const INTERNET_DEFAULT_FTP_PORT As Integer = 21 Private Const INTERNET_SERVICE_FTP As Integer = 1 Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _ (ByVal lpszAgent As String, ByVal dwAccessType As Integer, ByVal lpszProxy As String, _ ByVal lpszProxyBypass As String, ByVal dwFlags As Integer) As Integer Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _ (ByVal hInternet As Integer, ByVal lpszServerName As String, ByVal nServerPort As Integer, _ ByVal lpszUserName As String, ByVal lpszPassword As String, ByVal dwService As Int32, _ ByVal dwFlags As Integer, ByVal dwContext As Integer) As Integer Private Declare Function InternetCloseHandle Lib "wininet.dll" _ (ByVal hInternet As Integer) As Boolean Private Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" _ (ByVal hConnect As Integer, ByVal lpszDirectory As String) As Boolean Private Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" _ (ByVal hConnect As Integer, ByVal lpszCurrentDirectory As StringBuilder, _ ByRef lpszCurrentDirectory As Integer) As Boolean Private Const MAX_PATH As Integer = 1024 Private hInternet As Integer Private hFtp As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim stDir As String Dim stTemp As New StringBuilder Dim nLen As Integer Dim r As Boolean stTemp.Capacity = MAX_PATH nLen = MAX_PATH hInternet = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0) hFtp = InternetConnect(hInternet, "ftpurl*****", _ INTERNET_DEFAULT_FTP_PORT, "name******", "Pass********", _ INTERNET_SERVICE_FTP, 0, 0) stDir = TextBox1.Text r = FtpSetCurrentDirectory(hFtp, stDir) If FtpGetCurrentDirectory(hFtp, stTemp, nLen) Then TextBox2.Text = stTemp.ToString() End If r = InternetCloseHandle(hFtp) End Sub End Class それと err.LastDllErrorで得た番号はInternetGetLastResponseInfoで何のエラーかわかります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.