GetFullPathとCombine [C#]

GetFullPath

名前空間System.IOのPath.GetFullPathを使用すると、同名前空間のDirectory.GetCurrentDirectory()で取得できるパスが自動で付加されます。

例)
string fileName = "foo.txt";
string fullpath = Path.GetFullPath(fileName);
「カレントディレクトリ + fileName」という文字列を返します。
カレントディレクトリが仮に『C:\fuga』とすると上記『fullpath』には『C:\fuga\foo.txt』が入ります。

また、以下のような途中までのパスを渡すと、
string path= "\mydir\foo.txt";
string fullpath = Path.GetFullPath(path);
//fullpath = C:\mydir\foo.txt"
「ルートディレクトリ + param」という形で返します。

Combine

Path.Combineは以下のように使用します。
string path = Path.Combine(dir,filename);
渡された文字列(上記の場合"dir"と"filename")の間に"\"を挿入してくれます。
必要性があまり感じられませんが、凡ミスを防ぐ意味で使うのもアリかなと。

Sample

『Directory.GetCurrentDirectory()』によって取得されるディレクトリと『Path.GetFullPath()』によって付加されるディレクトリが同じかを確かめています。
static void Main(string[] args)
{
    string fileName = "foo.txt";
    string currentDir = Directory.GetCurrentDirectory();

    string fullPath1 = Path.GetFullPath(fileName);
    string fullPath2 = Path.GetFullPath(Path.Combine(currentDir, fileName));
    
    Console.WriteLine(fullPath1);
    Console.WriteLine(fullPath2);
    Console.WriteLine(fullPath1 == fullPath2);
}

0 Comments:

Recent Posts