Переименовать папки в c # Form - PullRequest
0 голосов
/ 05 февраля 2011

Я пытаюсь сделать программу Form на c #, чтобы переименовать много папок. Клиенты должны выбрать папку (и имя, которое нужно переименовать), в которую включены все папки, например, в c: \ folder \, это папки:

1991 - title1
1992 - title2
1993 - title3
1994 - title4

А теперь я поменяю год на имя, например:

name - title1
name - title2
name - title3
name - title4

Пример изображения:

example program

Я надеюсь, вы понимаете, что я хочу :-), и вы можете помочь мне с этим.

С уважением, Матиас

Ответы [ 5 ]

3 голосов
/ 05 февраля 2011

Несколько подсказок:

  1. Получить все файлы (рекурсивно, если вы хочу) с

    Directory.GetFiles (@ "C: \ папка \")

  2. Переименуйте все файлы с помощью

    File.Move (@ "C: \ папка \ Старое_имя", @ "C: \ папка \ новое_имя");

Если ваш формат файла такой, вы можете просто разделить имя файла на «-» и заменить первую часть своим именем.

2 голосов
/ 05 февраля 2011

Вы можете использовать класс FolderBrowserDialog для выбора каталога, Класс каталога для его переименования и String.Split или RegEx для изменения имени.

Сохраните выбранные каталоги и их имена в коллекцию по вашему выбору.

1 голос
/ 05 февраля 2011

Используйте ответы других, и для переименования я бы сделал замену RegEx следующим образом.

string new_folder_name = Regex.Replace(/*old folder name*/, @"\d\d\d\d", /*user provided name*/)
1 голос
/ 05 февраля 2011

Класс каталогов сделает это.

http://msdn.microsoft.com/en-us/library/system.io.directory.aspx

Вам также следует взглянуть на Path, чтобы понять, что заменить.

http://msdn.microsoft.com/en-us/library/system.io.path_members(v=VS.71).aspx

// Move the directory.
Directory.Move(path, target);
0 голосов
/ 05 февраля 2011

В командной строке следующее

for /L %n in (1991,1,2010) do ren "(%n) - *" "name - *"

должно делать то, что вы хотите.

...