Как переименовать папку / каталог в C #? - PullRequest
1 голос
/ 30 ноября 2009

Пусть: Папка для переименования C: \ Temp \ Torename чтобы: C: \ Temp \ ToRename

Directory.Move не работает, поскольку папка (: \ temp \ Torename) уже существует.

Я ищу решение, которое не включает создание временной папки. У меня есть это решение на месте: Переместить во временную папку (уникальное имя), например, c: \ temp \ TorenameTemp Переместить из временной папки в новую папку. например, c: \ temp \ ToRename Проблема в том, что моя папка может стать очень большой, а перемещение может занять некоторое время. Мне нравится решение Windows Explorer, в котором пользователь переименовывает на месте, независимо от размера.

спасибо за ваше время.

Ответы [ 4 ]

6 голосов
/ 30 ноября 2009
Directory.Move(@"C:\Temp\Dir1", @"C:\Temp\dir1_temp");
Directory.Move(@"C:\Temp\dir1_temp", @"C:\Temp\dir1");

Файлы не будут перемещены, если вы не переместите их на другой том. Если пункт назначения находится на том же томе, изменится только имя каталога.

4 голосов
/ 30 ноября 2009

Directory.Move не масштабируется с размером каталога (если вы не копируете на другой диск), поэтому нет ничего плохого в том, чтобы дважды вызывать его.

1 голос
/ 14 января 2015

Вот как это можно сделать:

My.Computer.FileSystem.RenameDirectory("c:\temp\Torename", "ToRename")

Первый параметр - это текущий каталог, второй параметр - это новое имя каталога.

Источник: Метод FileSystem.RenameDirectory

0 голосов
/ 30 ноября 2009

Directory.Move для каталога File.Move для файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...