フォルダやファイルの名前を扱うときはPathクラスを利用すると便利です。
-------------------------------------------------------
using System;
using System.IO;
class Sample
{
public static void Main()
{
string testpath1 = @"c:\test\test1.txt";
string testpath2 = @"c:\test\";
string testpath3 = @"c:\test";
string testpath4 = "test.txt";
string tmpstr = null;
// ファイル名の取り出し(拡張子つき)
tmpstr = Path.GetFileName(testpath1);
Console.WriteLine(tmpstr);
// ファイル名の取り出し(拡張子なし)
tmpstr = Path.GetFileNameWithoutExtension(testpath1);
Console.WriteLine(tmpstr);
// フォルダ名の取り出し
tmpstr = Path.GetDirectoryName(testpath1);
Console.WriteLine(tmpstr);
// パスの連結(区切り文字つき)
tmpstr = Path.Combine(testpath2, testpath4);
Console.WriteLine(tmpstr);
// パスの連結(区切り文字なし)
tmpstr = Path.Combine(testpath3, testpath4);
Console.WriteLine(tmpstr);
// 一時ファイルの作成
tmpstr = Path.GetTempFileName();
Console.WriteLine(tmpstr);
}
}
-------------------------------------------------------
testpath1の文字列の前につけている@は、エスケープ文字を評価しないようにするものです。
@を書かない場合、\はエスケープ文字として扱われてしまうため、"c:\\test\\test1.txt"という記述にする必要があります。
最後の例のGetTempFileNameメソッドは一時ファイルを作成してそのファイル名を返してくれます。
ただし.NET環境では、一時ファイルを使う代わりにmemorystreamを使えるような気がします。
あおい情報システム株式会社 小野修司(どっとねっとふぁん)