パスの末尾がディレクトリ区切り文字となっているかどうかを調べるにはEndsInDirectorySeparatorメソッドを使うことができます。 また、ディレクトリ区切り文字で終端されているパスから終端のディレクトリ区切り文字をトリミングするにはTrimEndingDirectorySeparatorメソッドを使うことができます。

EndsInDirectorySeparator・TrimEndingDirectorySeparatorメソッドは、ディレクトリを表すパスの場合は末尾が\あるいは/となっていることを要求したい場合、逆にパスがファイルでもディレクトリでも同一の表記で扱いたい場合などに用いることができます。

TrimEndingDirectorySeparatorメソッドは、E:\,\,/などルートディレクトリを表すパスの場合は終端のトリミングは行いません。 そのため、このメソッドを使ってドライブ名(E:)のみを取得することはできません。

なお、EndsInDirectorySeparator・TrimEndingDirectorySeparatorメソッドは.NET Standard 2.1/.NET Core 2.1以降で使用できます。

Path.TrimEndingDirectorySeparator/EndsInDirectorySeparatorメソッドでパス末尾のディレクトリ区切り文字を除去する/パス末尾がディレクトリ区切り文字かどうか調べる .NET Standard 2.1/.NET Core 2.1
using System;
using System.IO;

class Sample {
  static void Main()
  {
    foreach (var path in new[] {
      // ディレクトリパス (Windows形式)
      @"E:\dir\subdir\",
      @"E:\dir\subdir",
      @"E:\",
      @"\",
      @"dir\subdir\",
      @"dir\subdir",
      // ディレクトリパス (Unix形式)
      @"/",
      @"/dir/subdir/",
      @"/dir/subdir",
      @"dir/subdir/",
      @"dir/subdir",
    }) {
      Console.WriteLine("path         = {0}", path);
      Console.WriteLine("dir separator? {0}", Path.EndsInDirectorySeparator(path)); // パスがディレクトリ区切り文字で終わるかどうか調べる
      Console.WriteLine("trimmed path = {0}", Path.TrimEndingDirectorySeparator(path)); // パス末尾のディレクトリ区切り文字を除去する
      Console.WriteLine();
    }
  }
}
実行結果
path         = E:\dir\subdir\
dir separator? True
trimmed path = E:\dir\subdir

path         = E:\dir\subdir
dir separator? False
trimmed path = E:\dir\subdir

path         = E:\
dir separator? True
trimmed path = E:\

path         = \
dir separator? True
trimmed path = \

path         = dir\subdir\
dir separator? True
trimmed path = dir\subdir

path         = dir\subdir
dir separator? False
trimmed path = dir\subdir

path         = /
dir separator? True
trimmed path = /

path         = /dir/subdir/
dir separator? True
trimmed path = /dir/subdir

path         = /dir/subdir
dir separator? False
trimmed path = /dir/subdir

path         = dir/subdir/
dir separator? True
trimmed path = dir/subdir

path         = dir/subdir
dir separator? False
trimmed path = dir/subdir

実行結果
path         = E:\dir\subdir\
dir separator? False
trimmed path = E:\dir\subdir\

path         = E:\dir\subdir
dir separator? False
trimmed path = E:\dir\subdir

path         = E:\
dir separator? False
trimmed path = E:\

path         = \
dir separator? False
trimmed path = \

path         = dir\subdir\
dir separator? False
trimmed path = dir\subdir\

path         = dir\subdir
dir separator? False
trimmed path = dir\subdir

path         = /
dir separator? True
trimmed path = /

path         = /dir/subdir/
dir separator? True
trimmed path = /dir/subdir

path         = /dir/subdir
dir separator? False
trimmed path = /dir/subdir

path         = dir/subdir/
dir separator? True
trimmed path = dir/subdir

path         = dir/subdir
dir separator? False
trimmed path = dir/subdir

EndsInDirectorySeparator・TrimEndingDirectorySeparatorメソッドが使用できない場合は、DirectorySeparatorChar・AltDirectorySeparatorCharフィールドString.EndsWithメソッドString.TrimEndメソッドを組み合わせることで同様の処理を行うことができます。