Переименование каталога в С#
Я не мог найти метод 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
}
}
Ответы
Ответ 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
.