Я следующего рекурсивного поиска-функции:Поиск файлов с использованием регулярных выражений
public List<FileInfo> Search_Files(String strDir, String line)
{
List<FileInfo> files = new List<FileInfo>();
try
{
foreach (String strFile in Directory.GetFiles(strDir,line+r))
{
files.Add(new FileInfo(strFile));
}
foreach (String strSubDir in Directory.GetDirectories(strDir))
{
List<FileInfo> sublist = Search_Files(strSubDir, line);
foreach (FileInfo file_infow in sublist)
{
files.Add(file_infow);
}
}
}
catch (Exception)
{
...
}
return (files);
}
значение переменной линейной выглядит как «1234». Теперь я хотел искать файлы, такие как: 1234c.something или 1234.something
Я создал следующие Regex:
Regex r = new Regex("[a-z].* | .*");
Я добавил его в линию строки, но он не работает. Почему это не работает и как я могу это исправить?
Вы не можете передать регулярное выражение в '.GetDirectories'. Попробуйте '1234c. *' (Здесь '.' - буквальная точка, а '*' означает * любое количество символов *). Не забудьте изменить подпись на 'public List Search_Files (String strDir, String line, String r)' и если 'line'' '1234', то' r' должен быть 'c. *'. Работает ли это для вас? –
Я не хочу только найти файлы c. *, Которые я хочу найти 1234 [a-z]. * Files. – lostluke
Я вижу, я отправил ответ, надеюсь, что он сработает для вас. –