鉴于大量文本包含与其他随机数据混合的几千个绝对路径(目录和文件),我该如何有效地提取它们?
例如:
[randomtext] c:\ file.txt (23,56,49)[randomtext] c:\ file2.txt [34,456] ......
令人讨厌的是,它还包含文本中的路径,如下所示:
blahblah {c:\ file.txt} blahblah(忽略{})因此使用像REGEX这样的模式匹配库不会起作用
我希望能够处理任何字符串,而不了解可能正在使用的模式,因为我不能假设这些模式将来会一样。
目前,我正在执行以下操作: -
寻找':' char,如果它左边有一个字母,右边有一个字母,那么跳回一个字符并以此为出发点。现在,从该点迭代字符串(直到另一个':'被装入或者你跳过了MAX_PATH个字符数),在每次迭代时创建一个子字符串并使用System.IO.File / Directory。 Exists()查看它是否是有效路径。如果是,则将子字符串拉出为有效路径......
...对剩余的字符串重复相同的过程。
这很有效,但是当您执行数十万次System.IO.File / Directory.Exists()检查时,速度非常慢。