■85643 / inTopicNo.3) |
Re[2]: リンク先のファイル形式を調べる方法 |
□投稿者/ スマスマ (4回)-(2017/11/12(Sun) 22:31:09)
|
■No85642 (Azulean さん) に返信
ありがとうございます。
以下のようにして試してみたのですが
disposがnothingとなっており、ファイル名を取得することができません。
他のURLも試してみましたがうまくいきませんでした
何が問題でしょうか?
Sub main2()
Dim url As String = "http://www.atmarkit.co.jp/fdotnet/dotnettips/618downnoname/downnoname.html"
Dim req As HttpWebRequest _
= CType(WebRequest.Create(url), HttpWebRequest)
Dim res As HttpWebResponse _
= CType(req.GetResponse(), HttpWebResponse)
Dim fileName As String = "download.tmp"
' ヘッダ情報からファイル名の取得
Dim dispos As String = res.Headers("Content-Disposition")
If Not String.IsNullOrEmpty(dispos) Then
' filename=<ファイル名>の抜き出し
Dim re As New Regex(
"filename\s*=\s* " &
"(?: " &
" ""(?<filename>[^""]*)"" " &
" | " &
" (?<filename>[^;]*) " &
") " _
, RegexOptions.IgnoreCase _
Or RegexOptions.IgnorePatternWhitespace)
Dim m As Match = re.Match(dispos)
If m.Success Then
fileName = m.Groups("filename").Value
End If
End If
' ファイルのダウンロード
Using st As Stream = res.GetResponseStream()
Using fs As New FileStream(fileName, FileMode.Create)
Dim buf(1024) As Byte
Dim count As Integer = 0
Do
count = st.Read(buf, 0, buf.Length)
fs.Write(buf, 0, count)
Loop While count <> 0
End Using
End Using
res.Close()
End Sub
|
|