カテゴリ: C# 更新日: 2025/11/09

C#でファイルパス操作の便利なテクニック!Pathクラスの使い方をわかりやすく解説

C#でファイルパス操作の便利なテクニック(Pathクラス)
C#でファイルパス操作の便利なテクニック(Pathクラス)

先生と生徒の会話形式で理解しよう

生徒

「先生、C#でファイルの場所やパスを扱うときって、どうやって操作するんですか?」

先生

「いい質問ですね。C#には『Pathクラス』というとても便利なクラスがあって、ファイルやフォルダのパス(場所の情報)を簡単に操作できるんですよ。」

生徒

「パスっていうのは、例えばCドライブとかフォルダの道みたいなものですか?」

先生

「そうです!パソコンの中で『どこにあるか』を示す地図のようなものですね。では、Pathクラスを使って、いくつか便利な使い方を学んでみましょう。」

1. Pathクラスとは?

1. Pathクラスとは?
1. Pathクラスとは?

C#のPathクラスは、System.IOという名前空間に含まれていて、ファイルやディレクトリ(フォルダ)のパスを扱うためのクラスです。
パスとは、ファイルがどのフォルダにあるかを示す「住所」のようなもので、たとえば「C:\Users\test\document.txt」のように書かれます。

Pathクラスを使うと、このパスからファイル名だけを取り出したり、拡張子を調べたり、パスを結合したりといった操作を簡単に行うことができます。

2. ファイル名・拡張子・フォルダ名を取得する

2. ファイル名・拡張子・フォルダ名を取得する
2. ファイル名・拡張子・フォルダ名を取得する

Pathクラスには、パスから必要な情報を取り出すためのメソッドがいくつも用意されています。代表的なのが次の3つです。

  • Path.GetFileName():ファイル名を取得する
  • Path.GetExtension():拡張子を取得する
  • Path.GetDirectoryName():フォルダのパスを取得する

具体的なコード例を見てみましょう。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string filePath = @"C:\Users\test\document.txt";

        Console.WriteLine(Path.GetFileName(filePath));      // ファイル名
        Console.WriteLine(Path.GetExtension(filePath));     // 拡張子
        Console.WriteLine(Path.GetDirectoryName(filePath)); // ディレクトリ名
    }
}

実行すると、次のように出力されます。


document.txt
.txt
C:\Users\test

このように、Pathクラスを使うと文字列操作をしなくても簡単に情報を取得できます。

3. パスを結合する(Path.Combine)

3. パスを結合する(Path.Combine)
3. パスを結合する(Path.Combine)

フォルダ名とファイル名を組み合わせて1つのパスを作りたいときは、Path.Combine()メソッドを使います。

自分で「\」(バックスラッシュ)を付けて文字列をつなげると、ミスが起こりやすくなります。Path.Combineを使えば自動的に正しい形で結合してくれます。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string folder = @"C:\Users\test";
        string file = "document.txt";

        string fullPath = Path.Combine(folder, file);
        Console.WriteLine(fullPath);
    }
}

C:\Users\test\document.txt

このように、フォルダとファイル名を安全に結合できます。複数のフォルダ階層も同時に結合できます。


string path = Path.Combine("C:\\Users", "test", "docs", "file.txt");
Console.WriteLine(path);

C:\Users\test\docs\file.txt

4. 拡張子を変更する(Path.ChangeExtension)

4. 拡張子を変更する(Path.ChangeExtension)
4. 拡張子を変更する(Path.ChangeExtension)

ファイルの拡張子(例えば.txtや.csvなど)を変更したい場合は、Path.ChangeExtension()を使います。

このメソッドは、指定したパスの拡張子を別のものに変更した新しい文字列を返します。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string path = @"C:\Users\test\data.txt";
        string newPath = Path.ChangeExtension(path, ".csv");

        Console.WriteLine(newPath);
    }
}

C:\Users\test\data.csv

元のファイルを直接変更するわけではなく、新しいパス文字列を返すだけなので注意しましょう。

5. 一時ファイルや一時フォルダの取得

5. 一時ファイルや一時フォルダの取得
5. 一時ファイルや一時フォルダの取得

一時的にデータを保存したい場合、Path.GetTempPath()で一時フォルダの場所を取得できます。また、Path.GetTempFileName()を使うと自動的に一時ファイルを作成してくれます。


using System;
using System.IO;

class Program
{
    static void Main()
    {
        string tempFolder = Path.GetTempPath();
        string tempFile = Path.GetTempFileName();

        Console.WriteLine(tempFolder);
        Console.WriteLine(tempFile);
    }
}

このようにすれば、アプリの一時データを保存したいときに便利です。

6. フルパスを絶対パスに変換(GetFullPath)

6. フルパスを絶対パスに変換(GetFullPath)
6. フルパスを絶対パスに変換(GetFullPath)

相対パス(例えば「..\data\file.txt」など)を絶対パス(パソコン上の完全な場所)に変換したいときは、Path.GetFullPath()を使います。


string relativePath = @"..\data\file.txt";
string fullPath = Path.GetFullPath(relativePath);
Console.WriteLine(fullPath);

このメソッドを使うと、プログラムが実際にどの場所のファイルを扱っているのかが一目でわかります。

7. パスの区切り文字(DirectorySeparatorChar)

7. パスの区切り文字(DirectorySeparatorChar)
7. パスの区切り文字(DirectorySeparatorChar)

Windowsではフォルダの区切りに「\(バックスラッシュ)」を使いますが、MacやLinuxでは「/」を使います。
その違いを吸収するために、Path.DirectorySeparatorCharを使うと、環境に合わせた正しい区切り文字を自動で使うことができます。


Console.WriteLine(Path.DirectorySeparatorChar);

Windowsなら「\」、Linuxなら「/」が表示されます。クロスプラットフォーム対応のC#アプリを作るときに便利です。

8. Pathクラスを使うメリット

8. Pathクラスを使うメリット
8. Pathクラスを使うメリット

Pathクラスを使うと、単なる文字列の結合よりも安全で確実なパス操作ができます。
特に、フォルダやファイルを扱う際の「\」や「/」の違いによるエラーを防げるのが大きな利点です。

また、Pathクラスは静的クラス(インスタンスを作らずに直接使えるクラス)なので、すぐに利用できるのも初心者にとって嬉しいポイントです。

カテゴリの一覧へ
新着記事
C#でタイムスタンプの精度を上げるためのテクニックを徹底解説!(初心者向け)
C#のコーディング規約(C# Coding Conventions)とは?読みやすいコードを書くための基本ルール
C#のデストラクタ(ファイナライザ)の使い方と注意点をやさしく解説!
COBOL資産のバージョン管理とは?初心者でもわかる保守と管理の基本
人気記事
No.1
Java&Spring記事人気No1
COBOLで学ぶSELECT文のORDER BY・GROUP BY活用法!初心者でもわかるデータ集計
No.2
Java&Spring記事人気No2
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法
No.4
Java&Spring記事人気No4
COBOLで学ぶカーソル操作と複数行データ取得の基本
No.5
Java&Spring記事人気No5
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.7
Java&Spring記事人気No7
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.8
Java&Spring記事人気No8
C#の日付型(DateTime)と基本的な使い方を解説|初心者向け入門ガイド