2020年11月02日
川俣晶の縁側ソフトウェアC# コーディング How To total 926 count

【入門級】任意の拡張子のファイル名を拡張子"bak"に書き換えたい

Written By: 川俣 晶連絡先

 ここにいろいろなファイルのファイル名があるとします。

 全て拡張子をbakに変更したいとします。

 しかし拡張子があったりなかったり3文字だったり4文字だったりします。

 ピリオドで終わっているケースと終わっていないケースもあります。

 簡単に拡張子を変更する方法はあるでしょうか?

 実はPath.ChangeExtensionメソッドを使えば簡単です。

 全てのケースで正しく拡張子を変更してくれます。

罠の数々 §

  • 実は、Path.ChangeExtensionメソッドの2番目の引数は".bak"と書いても"bak"と書いても結果は同じである

参考リンク §

Path.ChangeExtension(String, String) メソッド

 実はこのメソッドには拡張子を変更するほかにもう1つ機能がある。拡張子ではなくnullを渡したら何が起こるのか。上のリンクから辿って確認してみよう。

リポジトリ §

https://github.com/autumn009/cshowto

Capture §

using System;

using System.IO;

class Program

{

    static void Main()

    {

        string[] ar =

        {

            "test.doc",

            "test.docx",

            "test.txt",

            "test.",

            "test"

        };

        foreach (var item in ar)

        {

            var newname = Path.ChangeExtension(item, "bak");

            Console.WriteLine($"{item} => {newname}");

        }

    }

}

実行結果

test.doc => test.bak

test.docx => test.bak

test.txt => test.bak

test. => test.bak

test => test.bak

COOL C# CREW

C#ハウツー連載の解説増量、カラーのソース、新規書き下ろし追加の読みやすい単行本はこちら。

C#ハウツー: 逆引き入門・こんな機能はどう書くの?