投稿者 よね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のバージョンなどの情報も必要だと思います。