入門口座 第11回 卒業制作について

タグの編集
投稿者 マックス  (社会人) 投稿日時 2017/8/27 22:03:49
半年ほど前からVB.NETを勉強するために、「VB中学校の入門講座」を見させていただいております。最近、「VB中学校 入門講座第11回 卒業制作」のファイルビューワーの製作に挑戦させていただき、Visual Studio 2015(Community)で製作しているのですが、「3-4-4.ファイル一覧を読み込めるようにする」のコードで躓きました。

もとより「B.NET2002対応  VB.NET2003対応  VB2005対応」なので、VB2015には対応していないとは思うのですが、回避するアドバイスがあればぜひご教授ください。エラーがでたコードは以下です。

■リスト6
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
    Dim Dialog As New OpenFileDialog
    If Dialog.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
        Dim Value As String
        Dim Reader As New IO.StreamReader(Dialog.FileName)
        FullPaths.Clear()
        lstFileName.Items.Clear()
        Do
            Value = Reader.ReadLine
            If Value Is Nothing Then
                Exit Do
            Else
                FullPaths.Add(Value)
                lstFileName.Items.Add(IO.Path.GetFileName(Value)) '←ここで例外処理がでる。
            End If
        Loop
        Reader.Close()
    End If
End Sub

● 「lstFileName.Items.Add(IO.Path.GetFileName(Value))」のところで、『型 'System.ArgumentException' のハンドルされていない例外が mscorlib.dll で発生しました。追加情報:パスに無効な文字が含まれています。』という例外が出ました。

なんせ、初心者でもありネットをいろいろ検索しているのですが解決出来ません。おわかりになる方がいましたらぜひアドバイスをいただけませんでしょうか。

マックス
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/8/28 11:23:24
> パスに無効な文字が含まれています。
> lstFileName.Items.Add(IO.Path.GetFileName(Value)) '←ここで例外処理がでる。

エラー発生時に、「Value」にどのような値が入っていたのかを確認してみてください。
投稿者 マックス  (社会人) 投稿日時 2017/8/28 18:45:03
>エラー発生時に、「Value」にどのような値が入っていたのかを確認してみてください。 

魔界の仮面弁士様
さっそくの回答ありがとうございます。

エラーの発生時には
      「Value」の値は →"????" & vbNullChar & ChrW(16) & "JFIF" & vbNullChar …
となりました。

管理人さんの解説をよく読むと『必ず「保」ボタンで作成したファイルを選択するようにしてください』とありました。エラーが出たのは、「保」ボタンで作成したファイルを選択しなかった場合で、その場合に異常終了しました。

『「保」ボタンで作成したファイル』を選択すると正常に読めました。適切な回答、ありがとうございました。

エラー処理についてもこれから研究して、このソフトを自分なりに完成させたいと思います。今後ともアドバイスよろしくお願いいたします。

マックス