Я записал регулярное выражение, которое анализирует путь к файлу к другой группе (ДИСК, DIR, ФАЙЛ, РАСШИРЕНИЕ).
^((?<DRIVE>[a-zA-Z]):\\)*((?<DIR>[a-zA-Z0-9_]+(([a-zA-Z0-9_\s_\-\.]*[a-zA-Z0-9_]+)|([a-zA-Z0-9_]+)))\\)*(?<FILE>([a-zA-Z0-9_]+(([a-zA-Z0-9_\s_\-\.]*[a-zA-Z0-9_]+)|([a-zA-Z0-9_]+))\.(?<EXTENSION>[a-zA-Z0-9]{1,6})$))
Я сделал тест в C#. Когда путь, который я хочу протестировать, корректен. Результат очень быстр, и это - то, что я хотел ожидать.
string path = @"C:\Documents and Settings\jhr\My Documents\Visual Studio 2010\Projects\FileEncryptor\Dds.FileEncryptor\Dds.FileEncryptor.csproj";
=> ХОРОШО
Но когда я пытаюсь протестировать с путем, что я знаю, что это не будет соответствовать, как это:
string path = @"C:\Documents and Settings\jhr\My Documents\Visual Studio 2010\Projects\FileEncryptor\Dds.FileEncryptor\Dds.FileEncryptor?!??????";
=> ОШИБКА
Тест замораживается, когда я называю эту часть кода
Match match = s_fileRegex.Match(path);
Когда я изучаю свой Проводник Процесса, я вижу процесс QTAgent32.exe, зависающий в 100% моего процессора. Что это означает?