Переименовать файл, содержащий символ «©» - PullRequest
0 голосов
/ 30 ноября 2011

Мы получили в качестве входных данных в нашем приложении (работающем под Windows) список файлов.Эти файлы были автоматически извлечены из базы данных с помощью скрипта.

Очевидно, что некоторые из имен содержат специальные символы (например, ударения), и эти символы отображаются с нашей стороны как '©'.

Как программно переименовать эти текстовые файлы (около 900'000) чтобы избавиться от этого персонажа?Мы не можем изменить источник и повторно извлечь файлы.Проблема в том, что из-за этого символа другая программа, связанная с нашей системой, не принимает файлы.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2011

Я закончил тем, что создал новый скрипт, который читает входные файлы и ищет специальные символы в их названии.

Это было действительно легко:

string filename = filename.Replace("©", "e");

Поскольку в имени файла содержится символ «©», скрипт (на C #) может его распознать и заменить соответствующим образом. Таким образом, я могу просматривать все папки и подпапки, просто читая имя файла и меняя специальные символы.

Спасибо всем за вклад!

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

Посмотрите на команду unix rename.Это позволяет применять регулярные выражения Perl к именам групп файлов.В этом случае вам может понадобиться что-то вроде:

$ rename 's/[^a-zA-Z0-9]//' *

В debian команда rename является частью пакета perl.Он также должен быть доступен на CPAN.

...