記事内に広告が含まれています。

【C#】フォルダ区切り文字を使わなくても簡単にパスを作成する方法

ディレクトリ名をいちいち結合して、ディレクトリパスを作るのが面倒なので、メソッドを作成しました。

ディレクトリの区切り文字を書かなくて良いので、コーディングが捗るはずです。

【スポンサーリンク】

Combineメソッドを使う

System.IO.Pathクラスには、Combine メソッドが用意されています。

Combine メソッドは、引数に渡した値同士を、パス形式で結合してくれる便利なメソッドです。

【スポンサーリンク】

サンプルコード

// ルートディレクトリが最初から判明している場合
private string AutoCombine(string strRoot, string[] targetArray)
{
    string strRet = strRoot;
    
    foreach(string strTarget in targetArray)
    {
        strRet = System.IO.Path.Combine(strRet, strTarget);
    }
    return strRet;
}

// とりあえず結合したい場合
private string AutoCombine(string[] targetArray)
{
    string strRet = string.Empty;

    foreach (string strTarget in targetArray)
    {
        strRet = System.IO.Path.Combine(strRet, strTarget);
    }
    return strRet;
}

オーバーロードしてるので、両方同時に書いてもエラーにはなりません。コピペしてすぐに動作確認出来ます。

【スポンサーリンク】

使い方

というわけで、実際に使ってみます。

用意するもの

先ほどのサンプルコードに加えて、用意するものは、

  • ルートディレクトリ情報(任意)
  • 配列

この2つです。ルートディレクトリ情報(例えば、「C:\Test」など)は任意で大丈夫です。

実装

動きを見るための画面を用意しました。

乾燥無味な画面ですが、「パス結合」ボタンをクリックすると、配列にある文字を結合して、結果をパス形式でテキストボックスに表示します。

ボタン直下のイベントに、配列を作成し、先述したサンプルコードのメソッドを呼び出します。

private void cmdPathCombine_Click(object sender, EventArgs e)
{
    string[] strArray = new string[] { @"C:¥Test","SubDir1", "SubDir2", "TextFile.txt" };
    this.txtResultCombine.Text = this.AutoCombine(strArray);
}

これを実行すると…。

結合できました。

ルートディレクトリ情報が最初から判明している場合は、

private void cmdPathCombine_Click(object sender, EventArgs e)
{
    string[] strArray = new string[] { "SubDir1", "SubDir2", "TextFile.txt" };
    this.txtResultCombine.Text = this.AutoCombine(@"C:¥Test", strArray);
}

と使えば同じ結果になります。

ちなみに、配列を Combine メソッドに渡しても同じ結果になるので、その方が楽ですね。

private void cmdPathCombine_Click(object sender, EventArgs e)
{
    string[] strArray = new string[] { @"C:¥Test","SubDir1", "SubDir2", "TextFile.txt" };
    this.txtResultCombine.Text = System.IO.Path.Combine(strArray);
}

やってることは同じです。

【スポンサーリンク】

参考リンク

Path.Combine メソッド (System.IO)
複数の文字列を 1 つのパスに結合します。
【スポンサーリンク】

鉄道記事も書いてます!

ちょっとリフレッシュして鉄道記事も読んでみませんか?

鉄道記事バックナンバーはこちら↓

鉄道コム投稿記事一覧ページ