在C#中重命名目录

时间:2010-01-07 21:59:20

标签: c# file-io directory rename

我无法在任何地方找到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
    }
}

3 个答案:

答案 0 :(得分:108)

移动和重命名之间没有区别;你应该简单地拨打Directory.Move

通常,如果您只执行一项操作,则应使用staticFile类中的Directory方法,而不是创建FileInfo和{ {1}}对象。

有关处理文件和目录的更多建议,请参阅here

答案 1 :(得分:59)

你应该移动它:

Directory.Move(source, destination);

答案 2 :(得分:15)

一个已经存在。如果你无法克服System.IO命名空间的“移动”语法。 Microsoft.VisualBasic.FileIO 命名空间中有一个静态类FileSystem,其中已包含RenameDirectoryRenameFile

如SLaks所述,这只是Directory.MoveFile.Move的包装。