Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
拡張子での識別(?)について
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9736#CommentId15468
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
よねKEN
 (社会人)
投稿日時
2010/8/10 09:52:29
> 'jpegかjpgかtifかtiffか?
> Dim jpgCount As Integer = files(何行目か).IndexOf(".jpg")
>
> で、jpgCountに0より大きい数字が入った場合に処理を行っています
> これ以外に良い方法ありませんか?やり方がおかしい気がしてなりません。
大文字小文字を区別しないための工夫さえしておけば、上記のようなやり方でもいいと思います。
私なら以下のようにします。
Public Function IsMatchFileExtention(ByVal fileName As String, ParamArray extentions As String()) As Boolean
Dim lowerfileName As String = fileName.ToLower()
For Each extention As String in extentions
If lowerfileName.EndsWith(extention.ToLower()) Then
Return True
End If
Next
Return False
End Function
のようなメソッドを作成すれば、以下のように判定できます。
If IsMatchFileExtention(files(何行目か), ".jpg", ".jpeg") Then
' jpegファイルの拡張子でした。
End If
> あと、Directory.GetFilesでデスクトップを選択すると、配列の中が?でいっぱいになります。
> そうして、エラーが出ないはずの画像に対しての処理がエラーになってしまいます。(その画像が入っているフォルダを直接選択するとエラーがでません)
> これはデスクトップを選ぶことで何かWindows特有の不具合が起きるのでしょうか?そもそも、プログラムの仕方が悪いのでしょうか?
具体的にどんなコードを書いて、検索を行った実際のパスがどうなっていて、
配列の中に入った実際の値がどうなのか?ともう少し詳しく聞かないと何とも言えません。
後、使用しているOSのバージョンなどの情報も必要だと思います。