C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■85643 / 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



編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: リンク先のファイル形式を調べる方法 /Azulean →Re[3]: リンク先のファイル形式を調べる方法 /Azulean
 
上記関連ツリー

リンク先のファイル形式を調べる方法 / スマスマ (17/11/12(Sun) 21:29) #85641
Re[1]: リンク先のファイル形式を調べる方法 / Azulean (17/11/12(Sun) 22:04) #85642
│└ リンク先のファイル形式を調べる方法 / スマスマ (17/11/12(Sun) 22:31) #85643 ←Now
│  └ Re[3]: リンク先のファイル形式を調べる方法 / Azulean (17/11/12(Sun) 22:50) #85644
│    └ Re[4]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/12(Sun) 22:57) #85645
│      └ Re[5]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/12(Sun) 23:09) #85646
│        └ Re[6]: リンク先のファイル形式を調べる方法 / Azulean (17/11/12(Sun) 23:28) #85647
│          └ Re[7]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/12(Sun) 23:49) #85648
│            └ Re[8]: リンク先のファイル形式を調べる方法 / Azulean (17/11/13(Mon) 00:00) #85649
Re[1]: リンク先のファイル形式を調べる方法 / WebSurfer (17/11/13(Mon) 00:02) #85650
Re[1]: リンク先のファイル形式を調べる方法 / WebSurfer (17/11/13(Mon) 11:34) #85651
  └ Re[2]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/13(Mon) 13:16) #85657
    └ Re[3]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/13(Mon) 21:04) #85666
      ├ Re[4]: リンク先のファイル形式を調べる方法 / Azulean (17/11/13(Mon) 22:33) #85668
      └ Re[4]: リンク先のファイル形式を調べる方法 / Jitta (17/11/14(Tue) 08:53) #85671
        └ Re[5]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/15(Wed) 09:40) #85697
          └ Re[6]: リンク先のファイル形式を調べる方法 / Jitta (17/11/15(Wed) 14:33) #85714
            └ Re[7]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/15(Wed) 15:22) #85716
              └ Re[8]: リンク先のファイル形式を調べる方法 / PANG2 (17/11/15(Wed) 15:42) #85717
                └ Re[9]: リンク先のファイル形式を調べる方法 / スマスマ (17/11/15(Wed) 16:13) #85718
                  ├ Re[10]: リンク先のファイル形式を調べる方法 / 魔界の仮面弁士 (17/11/15(Wed) 17:22) #85721
                  │└ Re[11]: リンク先のファイル形式を調べる方法 / 魔界の仮面弁士 (17/11/15(Wed) 17:33) #85722
                  └ Re[10]: リンク先のファイル形式を調べる方法 / Jitta (17/11/15(Wed) 17:20) #85720

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信