System.IO.Pathクラスは地味に便利

なんだかかゆいところに手が届く的な心憎いクラス

string path = @"c:\JOJO\Dio.txt"; //ファイルパス

if( Path.HasExtension(path) )  // 拡張子がついているかを返す
  Console.Write("{0}は拡張子つき",path);

Path.GetFileName(path); //Dio.txtが帰る。

Path.ChangeExtension(path, ".xml"); //拡張子を変更する(ピリオドはあってもなくても可)

Path.GetFileNameWithoutExtension (path); // ファイルの拡張子を除いた名前(Dio)が返る

Path.GetDirectoryName(path); // ファイルの親ディレクトリのパスを返す(c:\JOJOまで)最後に\は付かない

Path.IsPathRooted(path); //絶対パスならtrue、相対パスならfalseが返る

Path.Combine(@"C:\JOJO", "Dio.txt"); //ファイルパスを結合する。パス区切り文字(¥)は自動的に補完される

string temp = Path.GetTempFileName(); //テンポラリファイルを作成してパスを返す