TERRYのブログ

なにやら書くかもしれません

C#でファイル名一発置換のメモ

フォルダ内のファイル名を置換したかったのではてなでのコード記法の練習がてらメモ。


"Pictures\艦隊これくしょん"フォルダ内で"艦これ"で始まるファイルを全て"KanColle"にしたい場合は

using System.IO;
using System.Linq;

namespace RenameApp
{
    class Program
    {
        static void Main(string[] args)
        {
            var directory = new DirectoryInfo(@"D:\Users\username\Pictures\艦隊これくしょん");

            foreach (var file in directory.EnumerateFiles().Where(f => f.Name.StartsWith("艦これ")))
            {
                file.MoveTo(file.FullName.Replace("艦これ", "KanColle"));
            }
        }
    }
}

フォルダ内のファイルからファイル名が"艦これ"で始まるやつをLinqで抽出して名前変更。
これで例えば"艦これ-12345.png"が"KanColle-12345.png"になります。
思った以上に簡単に書けるんですねー。

// 追記: DirectoryInfo.GetFiles()をEnumerateFiles()に書き換え
// できるだけ配列よりIEnumerable<T>を受けたいなーというアレです