Подтвердить что ты не робот

Переименование каталога в С#

Я не мог найти метод 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
    }
}
4b9b3361

Ответ 1

Нет никакой разницы между перемещением и переименованием; вы должны просто вызвать Directory.Move.

В общем случае, если вы выполняете только одну операцию, вы должны использовать методы static в классах File и Directory вместо создания объектов FileInfo и DirectoryInfo.

Подробнее о работе с файлами и каталогами см. здесь.

Ответ 2

Вы должны переместить его:

Directory.Move(source, destination);

Ответ 3

Один уже существует. Если вы не можете преодолеть синтаксис "Переместить" пространства имен System.IO. Существует статический класс FileSystem в пространстве имен Microsoft.VisualBasic.FileIO, в котором уже есть RenameDirectory и RenameFile.

Как упоминалось SLaks, это всего лишь оболочка для Directory.Move и File.Move.