Я пытаюсь переименовать файлы, которые моя программа имеет как «незаконные символы» для импорта файлов SharePoint. Незаконными символами, которые я имею в виду, являются: ~ #% & * {}/\ | : <>? - ""Изменение имен файлов с использованием RegEx и Recursion
Что я пытаюсь сделать, это перезаписать диск, собрать список имен файлов, а затем через регулярные выражения, выбрать имена файлов из списка и попытаться заменить недопустимые символы в фактических именах файлов самих себя.
У кого-нибудь есть идеи, как это сделать? До сих пор у меня есть это: (пожалуйста, помните, что я полный n00b этого материал)
class Program
{
static void Main(string[] args)
{
string[] files = Directory.GetFiles(@"C:\Documents and Settings\bob.smith\Desktop\~Test Folder for [SharePoint] %testing", "*.*", SearchOption.AllDirectories);
foreach (string file in files)
{
Console.Write(file + "\r\n");
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
string pattern = " *[\\~#%&*{}/:<>?|\"-]+ *";
string replacement = " ";
Regex regEx = new Regex(pattern);
string[] fileDrive = Directory.GetFiles(@"C:\Documents and Settings\bob.smith\Desktop\~Test Folder for [SharePoint] %testing", "*.*", SearchOption.AllDirectories);
StreamWriter sw = new StreamWriter(@"C:\Documents and Settings\bob.smith\Desktop\~Test Folder for [SharePoint] %testing\File_Renames.txt");
foreach(string fileNames in fileDrive)
{
string sanitized = regEx.Replace(fileNames, replacement);
sw.Write(sanitized + "\r\n");
}
sw.Close();
}
}
Так что мне нужно, чтобы выяснить, как рекурсивный поиск этих недопустимых символов, замените их в самом файл сам. У кого-нибудь есть идеи?
Я думаю, что он просто означает, что их вырезать – slf
делает регулярное выражение так, как вы хотите? – slf