• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:FTP接続の例外処理)

FTP接続の例外処理について

このQ&Aのポイント
  • vb.net開発時のFTP接続での例外処理についてご教授ください。
  • 特に、アップロード中に接続が切断された場合の処理方法について教えてください。
  • ご教授いただけるとありがたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>この部分をTry文の外で宣言すればエラーの解決になる すりゃいいじゃん(笑) Private Function UpRoad(ByVal Flnm As String) As Boolean Dim reqStrm As System.IO.Stream  Dim fs As System.IO.FileStream Try       'ファイルをアップロードするためのStreamを取得       reqStrm = ftpReq.GetRequestStream()       'アップロードするファイルを開く       fs = New System.IO.FileStream( _       upFile, System.IO.FileMode.Open, System.IO.FileAccess.Read) … catch … Finally … End Try End Sub

misaki029
質問者

お礼

ホントデス(泣 すればいいだけの問題でした・・・。 忙しい中答えてくださってありがとう。 とても助かりました。

その他の回答 (1)

回答No.1

俺自身FTPとかの処理に詳しくないんで,見当違いの事いうかもしれないけど, 質問見て思ったのがTry~Catch~Finally~End Try構文の最後のFinally http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet14/vb6tonet14_03.html

misaki029
質問者

補足

返信ありがとうございます。 Try~EndTryの内容を以下のように修正しました。  Try       'ファイルをアップロードするためのStreamを取得       Dim reqStrm As System.IO.Stream = ftpReq.GetRequestStream()       'アップロードするファイルを開く       Dim fs As New System.IO.FileStream( _       upFile, System.IO.FileMode.Open, System.IO.FileAccess.Read)       'アップロードStreamに書き込む       Dim buffer(1023) As Byte       While True         Dim readSize As Integer = fs.Read(buffer, 0, buffer.Length)         If readSize = 0 Then           Exit While         End If         reqStrm.Write(buffer, 0, readSize)       End While '**削除ここから       'fs.Close()       'reqStrm.Close()      '**削除ここまで       UpRoad = False       Exit For    Catch wex As System.Net.WebException       Dim Err As String = wex.Status       If Err = "2" Then         UpRoad = True         Exit For       Else         Int_Err = Int_Err + 1         If Int_Err = 3 Then           System.IO.File.WriteAllText("C:\UL.log", wex.ToString)           UpRoad = True           Exit For         Else           Exit Try           '10秒間(10000ミリ秒)停止する           System.Threading.Thread.Sleep(10000)         End If       End If '**追加ここから    Finally      fs.Close() reqStrm.Close()    '**追加ここまで    End Try このように修正した場合 fs,reqStrmが宣言されていませんというエラーが出てしまいます。 Tryの頭部分で宣言した 'ファイルをアップロードするためのStreamを取得 Dim reqStrm As System.IO.Stream = ftpReq.GetRequestStream() 'アップロードするファイルを開く Dim fs As New System.IO.FileStream( _ upFile, System.IO.FileMode.Open, System.IO.FileAccess.Read) が変数の有効範囲を超えてしまったのだと理解しています。 この部分をTry文の外で宣言すればエラーの解決になると思うのですが、 どう修正してよいかわかりません。 非常に基本的な問題で申し訳ないのですが、どなたかご教授ください。

関連するQ&A