.NET TIPS

3つ以上の文字列要素をファイル・パスとして結合するには?[4以降、C#、VB]

デジタルアドバンテージ 一色 政彦
2010/07/15

 .NET Frameworkでは、2つの文字列要素を結合して、1つのファイル・パスを作成するためのメソッドとして、Pathクラス(System.IO名前空間)の静的メソッドCombineが用意されている。

 このPath.Combineメソッドを使うと、例えば、

C:\ParentDirectory

ChildDirectory\FileName.txt

を連結させて、次のような1つのファイル・パスを作成することができる。

C:\ParentDirectory\ChildDirectory\FileName.txt

 なお、このファイル・パス作成例では「ParentDirectory」と「ChildDirectory」の間に「\」という文字が新たに追加されており、単純な文字列連結ではないことが分かる。

 .NET Framework 4では、このPath.Combineメソッドが強化された。具体的には、従来は2つの文字列要素を結合するメソッドしか用意されていなかったが、.NET Framework 4では3つ以上の文字列要素を結合できるオーバーロード・メソッド(=パラメータが異なるメソッド)が3つ追加されている。具体的には、次の3つのメソッドだ(カッコ内はパラメータのデータ型)。

Path.Combine メソッド (String, String, String)
Path.Combine メソッド (String, String, String, String)
Path.Combine メソッド (String[])

 これにより、例えば、

C:\
ParentDirectory
ChildDirectory
FileName.txt

という4つの文字列要素を結合させたい場合、従来は、

Path.Combine("C:\", Path.Combine("ParentDirectory", Path.Combine("ChildDirectory", "FileName.txt")))

というように(VBのコード例)、Path.Combineメソッドを何度も重ねて呼び出す必要があった。これが.NET Framework 4では、

Path.Combine("C:\", "ParentDirectory", "ChildDirectory", "FileName.txt")

のように、よりシンプルに記述できるようになっている。

 次のサンプル・コードは、4つのパラメータを持つバージョンのPath.Combineメソッドを利用したコンソール・アプリケーションのコード例だ。

using System;
using System.IO;

class Program
{
  static void Main()
  {
    string test = Path.Combine("C:\\", "ParentDirectory", "ChildDirectory", "FileName.txt");
    Console.WriteLine(test);
    // 出力例:
    // C:\ParentDirectory\ChildDirectory\FileName.txt
  }
}
Imports System.IO

Module Module1

  Sub Main()
    Dim test = Path.Combine("C:\", "ParentDirectory", "ChildDirectory", "FileName.txt")
    Console.WriteLine(test)
    ' 出力例:
    ' C:\ParentDirectory\ChildDirectory\FileName.txt
  End Sub

End Module
4つの文字列要素を結合してファイル・パスを作成するサンプル・コード

 5つ以上の文字列要素を結合させたい場合は、それらの文字列要素を文字列配列にまとめて、それをパラメータに渡せばよい(つまり「Path.Combine メソッド (String[])」を利用すればよい)。End of Article

カテゴリ:クラス・ライブラリ 処理対象:文字列

この記事と関連性の高い別の.NET TIPS
文字と文字列を変換するには?
[ASP.NET]DataGridコントロールの同一列内のセルを結合するには?
文字列の長さを取得するには?
文字列に特定の文字列が含まれているかを調べるには?(Contains編)
文字列に特定の文字列が含まれているかを調べるには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH