ファイルダウンロードの成功と失敗で・・・ への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 流れ者  (その他)
投稿日時
2009/12/25 01:05:55
こんにちは。
下記のアドレス
http://dobon.net/vb/dotnet/internet/downloadfile.html
が、かなり参考になると思います。
エラーチェックもされてますし、ダウンロード状況を表示するようにもなっています。
下記のアドレス
http://dobon.net/vb/dotnet/internet/downloadfile.html
が、かなり参考になると思います。
エラーチェックもされてますし、ダウンロード状況を表示するようにもなっています。
投稿者 Keno31o  (小学生)
投稿日時
2009/12/24 06:35:31
てっきりPCの中にあるものを調べるのかと思ってました・・w
http://www.atmarkit.co.jp/fdotnet/dotnettips/817httpstatus/httpstatus.htmlを改良してみましたが、存在しないと、例外で停止してしまいます。
Imports System
Imports System.Net
Public Class Form1
Dim Internet_ini As Net.WebClient = New Net.WebClient()
Dim inid As String = "http://***/cats.ini"
Dim Internet_rtf As Net.WebClient = New Net.WebClient()
Dim rtf As String = "http://***/top.rtf"
Dim url As String = "http://www.yahoo.co.jp/hoge.html"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WebRequest.DefaultWebProxy = Nothing
Dim statusCode As HttpStatusCode = GetStatusCode(rtf)
Dim code As Integer = CType(statusCode, Integer)
If code >= 400 Then
'Richtextbox1にerror.rtfを 仮にerrorと表示
RichTextBox1.Text = "ERROR"
Else
Internet_rtf.DownloadFile(rtf, Me.RichTextBox1.Text)
Dim ini As String = Internet_ini.DownloadString(inid)
End If
End Sub
Public Shared Function GetStatusCode(ByVal url As String) As HttpStatusCode
Dim rtf As String = "http://***/top.rtf"
Dim statusCode As HttpStatusCode
Dim req As HttpWebRequest = _
CType(WebRequest.Create(rtf), HttpWebRequest)
Dim res As HttpWebResponse = Nothing
Try
res = CType(req.GetResponse(), HttpWebResponse)
statusCode = res.StatusCode
Catch ex As WebException
res = CType(ex.Response, HttpWebResponse)
If Not res Is Nothing Then
statusCode = res.StatusCode
Else
Throw
End If
Finally
If Not res Is Nothing Then
res.Close()
End If
End Try
Return statusCode
End Function
End Class
どうやって改良したらいいのか・・・
徹夜で考えます。もう少しお時間ください。
http://www.atmarkit.co.jp/fdotnet/dotnettips/817httpstatus/httpstatus.htmlを改良してみましたが、存在しないと、例外で停止してしまいます。
Imports System
Imports System.Net
Public Class Form1
Dim Internet_ini As Net.WebClient = New Net.WebClient()
Dim inid As String = "http://***/cats.ini"
Dim Internet_rtf As Net.WebClient = New Net.WebClient()
Dim rtf As String = "http://***/top.rtf"
Dim url As String = "http://www.yahoo.co.jp/hoge.html"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WebRequest.DefaultWebProxy = Nothing
Dim statusCode As HttpStatusCode = GetStatusCode(rtf)
Dim code As Integer = CType(statusCode, Integer)
If code >= 400 Then
'Richtextbox1にerror.rtfを 仮にerrorと表示
RichTextBox1.Text = "ERROR"
Else
Internet_rtf.DownloadFile(rtf, Me.RichTextBox1.Text)
Dim ini As String = Internet_ini.DownloadString(inid)
End If
End Sub
Public Shared Function GetStatusCode(ByVal url As String) As HttpStatusCode
Dim rtf As String = "http://***/top.rtf"
Dim statusCode As HttpStatusCode
Dim req As HttpWebRequest = _
CType(WebRequest.Create(rtf), HttpWebRequest)
Dim res As HttpWebResponse = Nothing
Try
res = CType(req.GetResponse(), HttpWebResponse)
statusCode = res.StatusCode
Catch ex As WebException
res = CType(ex.Response, HttpWebResponse)
If Not res Is Nothing Then
statusCode = res.StatusCode
Else
Throw
End If
Finally
If Not res Is Nothing Then
res.Close()
End If
End Try
Return statusCode
End Function
End Class
どうやって改良したらいいのか・・・
徹夜で考えます。もう少しお時間ください。
投稿者 Keno31o  (小学生)
投稿日時
2009/12/24 06:11:52
こんにちは。
ファイルが存在しているかどうかはDirというものでわかりますよ。
If PathIsDirectory(rtf) Then
Internet_rtf.DownloadFile(rtf, Me.RichTextBox1.Text)
Dim ini As String = Internet_ini.DownloadString(inid)
Else
RichTextBox1.Text = "ERROR"
End If
(未確認です...)
ネットは、http://dobon.net/vb/dotnet/internet/httpstatuscode.htmlを参考にどうぞ。
ファイルが存在しているかどうかはDirというものでわかりますよ。
If PathIsDirectory(rtf) Then
Internet_rtf.DownloadFile(rtf, Me.RichTextBox1.Text)
Dim ini As String = Internet_ini.DownloadString(inid)
Else
RichTextBox1.Text = "ERROR"
End If
(未確認です...)
ネットは、http://dobon.net/vb/dotnet/internet/httpstatuscode.htmlを参考にどうぞ。
投稿者 ウッチー  (小学生)
投稿日時
2009/12/24 03:52:07
お久しぶりです。
今回は、下のコードで
サーバー側にアクセスできなかったり、ファイルが存在しなかったときに、RichTextBox1にerror.rtfを表示させたいのですがうまくいきません。
また同様にファイルが取得出来なかったときに、メッセージボックスを表示する方法を教えて欲しいのです。
どうかご教授お願いします。
今回は、下のコードで
Dim Internet_ini As Net.WebClient = New Net.WebClient()
Dim inid As String = "http://***/cats.ini"
Dim Internet_rtf As Net.WebClient = New Net.WebClient()
Dim rtf As String = "http://***/top.rtf"
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Internet_rtf.DownloadFile(rtf, Me.RichTextBox1.Text)
Dim ini As String = Internet_ini.DownloadString(inid)
End Sub
サーバー側にアクセスできなかったり、ファイルが存在しなかったときに、RichTextBox1にerror.rtfを表示させたいのですがうまくいきません。
また同様にファイルが取得出来なかったときに、メッセージボックスを表示する方法を教えて欲しいのです。
どうかご教授お願いします。
お二方のご返答を参考にして以下のようなクラスを作成してみました。
・・・なのですがどうしても分からない部分があり、その部分をご教授願います。
14,16,29,31行目の
がエラーになってしまいます。
普通のフォームを使用したものではエラーにはならなかったのですが・・・。
重ねてご迷惑をおかけしますが、宜しくお願いします。