ファイル名やフォルダ名を変更したい場面はよくあるのに、File クラスや Directory クラスに Rename メソッドが用意されていないのは何故なんだろう?
class Program { static void Main(string[] args) { DirectoryInfo dir = new DirectoryInfo(@"C:\foo\"); dir.Rename("bar"); FileInfo file = new FileInfo(@"C:\sample.txt"); file.Rename("test.txt"); } } public static class FileExtensions { public static void Rename(this FileInfo file, string newName) { file.MoveTo(newName); } } public static class DirectoryExtensions { public static void Rename(this DirectoryInfo dir, string newName) { dir.MoveTo(newName); } }
Move メソッドや MoveTo メソッドで名前は変えられるんだけど、直観的じゃないよねぇ…。