Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

C#辞典

  1. トップページ
  2. C#辞典
  3. Path.Combine() / Path.GetFileName()

Path.Combine() / Path.GetFileName()

ファイルパスを安全に結合する『Path.Combine()』と、パスからファイル名部分を取り出す『Path.GetFileName()』です。

構文
// パスを結合します。OS のパス区切り文字を自動で補完します。
Path.Combine(string path1, string path2)
Path.Combine(params string[] paths)

// パスからファイル名(拡張子含む)を取得します。
Path.GetFileName(string path)

// パスから拡張子なしのファイル名を取得します。
Path.GetFileNameWithoutExtension(string path)

// パスから拡張子を取得します(先頭にドットが付きます)。
Path.GetExtension(string path)

// パスからディレクトリ部分を取得します。
Path.GetDirectoryName(string path)
メソッド一覧
メソッド概要
Path.Combine(path1, path2)2つ以上のパスを結合します。OS の区切り文字(Windows は \、Linux/Mac は /)を自動で挿入します。
Path.GetFileName(path)パス文字列からファイル名(拡張子含む)だけを返します。
Path.GetFileNameWithoutExtension(path)拡張子を除いたファイル名を返します。
Path.GetExtension(path)拡張子を返します(例:.txt)。拡張子がない場合は空文字列を返します。
Path.GetDirectoryName(path)ファイル名を除いたディレクトリ部分を返します。
サンプルコード
using System;
using System.IO;

// Path.Combine() でパスを結合します。
string フォルダ = @"C:\Users\akiba\documents";
string ファイル名 = "report.txt";
string フルパス = Path.Combine(フォルダ, ファイル名);
Console.WriteLine(フルパス); // C:\Users\akiba\documents\report.txt

// 3つ以上のパスも結合できます。
string 保存先 = Path.Combine(@"C:\data", "2024", "01", "log.csv");
Console.WriteLine(保存先); // C:\data\2024\01\log.csv

// Path.GetFileName() でファイル名を取り出します。
string パス = @"C:\Users\akiba\documents\report.txt";
Console.WriteLine(Path.GetFileName(パス));                    // report.txt
Console.WriteLine(Path.GetFileNameWithoutExtension(パス));    // report
Console.WriteLine(Path.GetExtension(パス));                   // .txt
Console.WriteLine(Path.GetDirectoryName(パス));               // C:\Users\akiba\documents
概要

『Path.Combine()』は文字列を直接連結するよりも安全なパスの結合方法です。区切り文字の重複や欠落を自動的に補正するため、Windows・Linux・Mac のいずれの環境でも同じコードが動作します。

パスを手動で文字列連結(path1 + "\\" + path2)するとOSによる動作の違いや区切り文字ミスが起きやすいため、必ず『Path.Combine()』を使用してください。

ファイルの読み書きには『File.ReadAllText() / File.WriteAllText()』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。