[C# Path] パス文字列内のファイル拡張子を変更する

System.IO.Path.ChangeExtensionメソッドを使うとパス文字列内のファイル拡張子を変更することが出来ます。

第1引数にはパス文字列を指定します、第2引数には新しい拡張子を指定します。
新しい拡張子は、.(ドット)を付けても付けなくても構いません。
第2引数をnullにすると、ファイル名だけにすることが出来ます。

戻り値拡張子が変更されたパス文字列になります。元の文字列は変わりません。

using System;
using System.IO;
class Program
{
    public static void Main()
    {
        // パス文字列
        var filePath = @"C:\source\test.txt";

        // 拡張子を変更(.を付けて指定)
        Console.WriteLine(Path.ChangeExtension(filePath, ".cs"));
        // 拡張子を変更(. はなし)
        Console.WriteLine(Path.ChangeExtension(filePath, "cs"));

        // 空文字を指定すると、最後の.だけ残る
        Console.WriteLine(Path.ChangeExtension(filePath, ""));
        // nullを指定するとファイル名だけになる
        Console.WriteLine(Path.ChangeExtension(filePath, null));

        // ファイル名だけでも使える
        var fileName = "Test.txt";
        Console.WriteLine(Path.ChangeExtension(fileName, "aaa"));
    }
}

出力結果です。

C:\source\test.cs
C:\source\test.cs
C:\source\test.
C:\source\test
Test.aaa

C# プログラミング講座に戻る

コメント

タイトルとURLをコピーしました