.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コントロールの同一列内のセルを結合するには?
文字列から特定の文字列を取り除くには?
[ASP.NET]DataGridコントロールのハイパーリンク列で複数のパラメータをデータ連結するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間