我无法在任何地方找到DirectoryInfo.Rename(To)或FileInfo.Rename(To)方法。所以,我写了自己的,我在这里发布它,供任何人使用,如果他们需要它,因为让我们面对它:MoveTo方法是矫枉过正的,如果你只是想重命名一个目录或文件,将总是需要额外的逻辑: / p>
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
}
}
答案 0 :(得分:108)
移动和重命名之间没有区别;你应该简单地拨打Directory.Move
。
通常,如果您只执行一项操作,则应使用static
和File
类中的Directory
方法,而不是创建FileInfo
和{ {1}}对象。
有关处理文件和目录的更多建议,请参阅here。
答案 1 :(得分:59)
你应该移动它:
Directory.Move(source, destination);
答案 2 :(得分:15)
一个已经存在。如果你无法克服System.IO
命名空间的“移动”语法。 Microsoft.VisualBasic.FileIO 命名空间中有一个静态类FileSystem
,其中已包含RenameDirectory
和RenameFile
。
如SLaks所述,这只是Directory.Move
和File.Move
的包装。