ここにいろいろなファイルのファイル名があるとします。
全て拡張子を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