我在任何地方都找不到DirectoryInfo.Rename(To)或FileInfo.Rename(To)方法。因此,我写了我自己的文章,并把它发布在这里,以供任何需要的人使用,因为我们要面对现实:MoveTo方法过于强大,如果您只想重命名目录或文件,则总是需要额外的逻辑:
public static class DirectoryExtensions
{
public static void RenameTo(this DirectoryInfo di, string name)
{
if (di == null)
{
throw new ArgumentNullException("di", "Directory info to rename cannot be null");
}
if (string.IsNullOrWhiteSpace(name))
{
throw new ArgumentException("New name cannot be null or blank", "name");
}
di.MoveTo(Path.Combine(di.Parent.FullName, name));
return; //done
}
}
foo
以Foo
将抛出IOException时,用一个简单的做Directory.Move
既被视为相同的路径。所以有一个不同...只是说说而已。