Советы по удалению недопустимых символов здесь:
Как удалить недопустимые символы из пути и имени файла?
Вам просто нужно изменить набор символов на набор символов, который вы хотите удалить.
Если вы выяснили, как просматривать папки, вы можете получить все файлы в каждой папке с помощью:
var files = System.IO.Directory.EnumerateFiles(currentPath);
, а затем
foreach (string file in files)
{
System.IO.File.Move(file, ConvertFileName(file));
}
Метод ConvertFileName, который вы напишите, чтобы принять имя файла в виде строки и вернуть имя файла без лишних символов.
Обратите внимание, что если вы используете .NET 3.5, GetFiles()
тоже работает. По данным MSDN:
EnumerateFiles и GetFiles
методы различаются следующим образом: когда вы
использовать EnumerateFiles, вы можете начать
перечисляя коллекцию имен
прежде чем вся коллекция
вернулся; когда вы используете GetFiles, вы
должен ждать весь массив имен
должны быть возвращены, прежде чем вы сможете получить доступ
массив. Поэтому, когда вы
работа со многими файлами и
каталоги, EnumerateFiles могут быть
более эффективный.
Как рекурсивно перечислять каталоги
string path = @"c:\dev";
string searchPattern = "*.*";
string[] dirNameArray = Directory.GetDirectories(path, searchPattern, SearchOption.AllDirectories);
// Or, for better performance:
// (but breaks if you don't have access to a sub directory; see 2nd link below)
IEnumerable<string> dirNameEnumeration = Directory.EnumerateDirectories(path, searchPattern, SearchOption.AllDirectories);