[ VB.NET / C# ] パスを結合する ( Path.Combine )

Pocket

ここでは、VB.NET および C# で Path.Combine メソッドを使用してパスの結合を行うサンプルコードを掲載しています。

スポンサーリンク

パスの結合を行うサンプルコード

サンプル内の path1 を ‘ D: ‘ のように ‘ \ ‘ バックスラッシュなしで指定すると、結合後の文字列は ‘ D:*.txt ‘ となってしまいます。意図した結果が得られなくなることもありますので注意してください。

VB.NET

    Dim path1 As String = "D:\"
    Dim path2 As String = "*.txt"

    Dim path As String = System.IO.Path.Combine(path1, path2)

    MessageBox.Show(path) ' D:\*.txt

C#

    string path1 = @"D:\";
    string path2 = @"*.txt";

    string path = System.IO.Path.Combine(path1, path2);

    MessageBox.Show(path); // D:\*.txt
.Net Framework 4 以降

.Net Framework4 以降では、Path.Combine メソッドが強化されて任意のパスを結合することができるようになりました。詳細はコメントを参照ください。

VB.NET

    Dim dir As String = "dir"
    Dim subDir1 As String = "subDir1"
    Dim subDir2 As String = "subDir2"
    Dim file As String = "string.txt"

    Dim path As String

    ' 2つのパスを結合する
    path = System.IO.Path.Combine(dir, file)
    MessageBox.Show(path) ' dir\string.txt

    ' 3つのパスを結合する
    path = System.IO.Path.Combine(dir, subDir1, file)
    MessageBox.Show(path) ' dir\subDir1\string.txt

    ' 4つのパスを結合する
    path = System.IO.Path.Combine(dir, subDir1, subDir2, file)
    MessageBox.Show(path) ' dir\subDir1\subDir2\string.txt

    ' 任意の数のパスを配列で指定して結合する
    Dim pathArray() As String = {"dir", "subDir1", "subDir2", "subDir3", "string.txt"}

    path = System.IO.Path.Combine(pathArray)
    MessageBox.Show(path) ' dir\subDir1\subDir2\subDir3\string.txt

C#

    string dir     = @"dir";
    string subDir1 = @"subDir1";
    string subDir2 = @"subDir2";
    string file    = @"string.txt";

    string path;

    // 2つのパスを結合する
    path = System.IO.Path.Combine(dir, file);
    MessageBox.Show(path); // dir\string.txt

    // 3つのパスを結合する
    path = System.IO.Path.Combine(dir, subDir1, file);
    MessageBox.Show(path); // dir\subDir1\string.txt

    // 4つのパスを結合する
    path = System.IO.Path.Combine(dir, subDir1, subDir2, file);
    MessageBox.Show(path); // dir\subDir1\subDir2\string.txt

    // 任意の数のパスを配列で指定して結合する
    string[] pathArray = {@"dir", @"subDir1", @"subDir2", @"subDir3", @"string.txt"};
    path = System.IO.Path.Combine(pathArray);
    MessageBox.Show(path); // dir\subDir1\subDir2\subDir3\string.txt
参考
スポンサーリンク


Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>