массовое изменение названий

Sergej+

Новичок
Регистрация
18.10.2022
Сообщения
1
Благодарностей
0
Баллы
1
Всем доброго дня! Есть необходимость массового переименования каталогов, есть понимание процесса:
1) взять в список текущие названия
2) взять файл в котором есть текщее название и название "на что нужно переименовать"
3) найти соответствие
4) заменить
подскажите пожалуйста как реализовать, с стандартным набором функционала не получается сделать в С# к сожалению не силен(
Заранее спасибо
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 338
Благодарностей
9 087
Баллы
113
Всем доброго дня! Есть необходимость массового переименования каталогов, есть понимание процесса:
1) взять в список текущие названия
2) взять файл в котором есть текщее название и название "на что нужно переименовать"
3) найти соответствие
4) заменить
подскажите пожалуйста как реализовать, с стандартным набором функционала не получается сделать в С# к сожалению не силен(
Заранее спасибо
Добрый день.

На 3) шаге можно использовать регулярное выражение. Например у вас в файле записан такой список соответсвий: "qwerty*asdfgh" (до звездочки существующее имя каталога, после звездочки - на что нужно переименовать). Тогда регуляркой (?<=qwerty\*).* мы и получаем соответствующую часть для qwerty, т.е. asdfgh.
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
482
Благодарностей
180
Баллы
43
Всем доброго дня! Есть необходимость массового переименования каталогов, есть понимание процесса:
1) взять в список текущие названия
2) взять файл в котором есть текщее название и название "на что нужно переименовать"
3) найти соответствие
4) заменить
подскажите пожалуйста как реализовать, с стандартным набором функционала не получается сделать в С# к сожалению не силен(
Заранее спасибо
Как то так можно

C#:
string pathRaplace = @"C:\Users\Desktop\tmp\Replace.txt";//Список что искать, на что менять разделитель ,
string pathCatalog = @"C:\Users\Desktop\tmp\catalog";// Путь к каталогу


var dir = new DirectoryInfo(pathCatalog);
foreach(var item in dir.GetDirectories())
{
    string name = item.Name;
   
    string[] lines = File.ReadAllLines(pathRaplace);
   
    foreach(var line in lines)
    {
        string[] chr = line.Split(new char[]{','});
       
        if(name.Equals(chr[0]))
            Directory.Move(pathCatalog+"\\"+name,pathCatalog+"\\"+chr[1]);
    }  
}
 
Последнее редактирование:
  • Спасибо
Реакции: Sho

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)