HasExtensionメソッドを使うことで、パスの表すファイル部分が、拡張子を持つかどうかを調べることができます。 HasExtensionメソッドでは、パスにファイル名がない場合でも例外にはならず、単に拡張子がないものとしてFalseが返されます。

ファイル名部分のうち、どの部分を拡張子と判断するかの基準はGetExtensionメソッドと同様です。 このため、UNIX系OSで隠しファイルとして扱われるドットファイル(dot file)は、常に拡張子を持つものとして判断されます。

Path.HasExtensionメソッドで拡張子を持つファイル名かどうか調べる
Imports System
Imports System.IO

Class Sample
  Shared Sub Main()
    For Each p As String In New String() {
      "E:\dir\subdir\file.txt", ' 絶対パス (Windows形式)
      "/dir/subdir/file.txt",   ' 絶対パス (UNIX形式)
      ".\dir\subdir\file.txt",  ' 相対パス (Windows形式)
      "./dir/subdir/file.txt",  ' 相対パス (UNIX形式)
      "file.txt",               ' ファイル名のみのパス
      "file",                   ' 拡張子のないファイル名
      "file.txt.bak",           ' ピリオドを二つ以上含むファイル名
      "file.",                  ' ピリオドで終わるファイル名
      "some.dir\",              ' ピリオドを含むディレクトリ名のパス (Windows形式)
      "some.dir/",              ' ピリオドを含むディレクトリ名のパス (UNIX形式)
      "dir/.file",              ' ピリオドで始まるファイル名
      ".file"                   ' ピリオドで始まるファイル名
    }
      Console.WriteLine("path = {0}", p)
      Console.WriteLine("has ext? {0}", Path.HasExtension(p)) ' パスのファイル名が拡張子を含むかどうか
      Console.WriteLine()
    Next
  End Sub
End Class
実行結果
path = E:\dir\subdir\file.txt
has ext? True

path = /dir/subdir/file.txt
has ext? True

path = .\dir\subdir\file.txt
has ext? True

path = ./dir/subdir/file.txt
has ext? True

path = file.txt
has ext? True

path = file
has ext? False

path = file.txt.bak
has ext? True

path = file.
has ext? False

path = some.dir\
has ext? False

path = some.dir/
has ext? False

path = dir/.file
has ext? True

path = .file
has ext? True

実行結果
path = E:\dir\subdir\file.txt
has ext? True

path = /dir/subdir/file.txt
has ext? True

path = .\dir\subdir\file.txt
has ext? True

path = ./dir/subdir/file.txt
has ext? True

path = file.txt
has ext? True

path = file
has ext? False

path = file.txt.bak
has ext? True

path = file.
has ext? False

path = some.dir\
has ext? True

path = some.dir/
has ext? False

path = dir/.file
has ext? True

path = .file
has ext? True