入門口座 第11回 卒業制作について への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2017/8/28 11:23:24
> パスに無効な文字が含まれています。
> lstFileName.Items.Add(IO.Path.GetFileName(Value)) '←ここで例外処理がでる。
エラー発生時に、「Value」にどのような値が入っていたのかを確認してみてください。
> lstFileName.Items.Add(IO.Path.GetFileName(Value)) '←ここで例外処理がでる。
エラー発生時に、「Value」にどのような値が入っていたのかを確認してみてください。
投稿者 マックス  (社会人)
投稿日時
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 で発生しました。追加情報:パスに無効な文字が含まれています。』という例外が出ました。
なんせ、初心者でもありネットをいろいろ検索しているのですが解決出来ません。おわかりになる方がいましたらぜひアドバイスをいただけませんでしょうか。
マックス
もとより「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 で発生しました。追加情報:パスに無効な文字が含まれています。』という例外が出ました。
なんせ、初心者でもありネットをいろいろ検索しているのですが解決出来ません。おわかりになる方がいましたらぜひアドバイスをいただけませんでしょうか。
マックス
魔界の仮面弁士様
さっそくの回答ありがとうございます。
エラーの発生時には
「Value」の値は →"????" & vbNullChar & ChrW(16) & "JFIF" & vbNullChar …
となりました。
管理人さんの解説をよく読むと『必ず「保」ボタンで作成したファイルを選択するようにしてください』とありました。エラーが出たのは、「保」ボタンで作成したファイルを選択しなかった場合で、その場合に異常終了しました。
『「保」ボタンで作成したファイル』を選択すると正常に読めました。適切な回答、ありがとうございました。
エラー処理についてもこれから研究して、このソフトを自分なりに完成させたいと思います。今後ともアドバイスよろしくお願いいたします。
マックス