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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.85643 の関連記事表示

<< 0 >>
■85643  Re[2]: リンク先のファイル形式を調べる方法
□投稿者/ スマスマ -(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
    
    
    
記事No.85641 のレス /過去ログ146より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -