У меня возникла интересная проблема, связанная с переименованием каталога.
Проблема : родительская папка с множеством подпапок, имена которых указаны в последовательности Пример:
- data-500
- data-501
- data-502
- data- [n]
Каждый из вышеперечисленныхПапки содержит подпапки и файлы внутри.Последовательность имен очень важна, и они должны быть последовательными с этой нумерацией, как показано выше.
Есть случаи, когда некоторые из папок удаляются, и моя проблема здесь в том, чтобы переименовать каталоги снова, чтобы все получилосьв примере последовательности
, если он начинается с 500 до 600, а кто-то удалил 550, теперь эта логика должна снова переименовать все в порядке с 500 до 599
, поскольку родительская папка содержит огромное количествовложенных папок, мне нужно применить логику для запуска в PARALLEL
По сути, переименование папок в PARALLEL
Tried: Directory.Move (), который пытается переместить всесодержимое папок, которое в первую очередь тратит время, а затем конфликтует (генерирует исключение) при работе в параллельном режиме, поскольку другой поток может пытаться воспроизвести эту же папку.
Tried: VisalBasic..Rename ..(), который также приводит к тому же результату, что и просто оболочка над Directory.Move ()
Сокращение параллельной операцииОт n до 2 также не решает эту проблему.
Единственное, что работает, это Powershell RenameItem (работает 2 потока за раз), который отлично работает, но мне нужно что-то в C # (не работает powershell в C #, пожалуйста)
Итак, в общем, нужно переименовать директ (возможно, без перемещения) и запустить в параллельной логике.
Возможно ли это?