如何从文本文件中提取文件路径

时间:2011-06-08 17:23:26

标签: c# .net c++ c parsing

我正在寻找C#或C ++ / C中的工具/代码,它可以从文件中提取文件路径,例如

FILE.TXT:

Lorem Impusum
C:\Windows\System32\test.exe
C:\Users\Limited\Downloads.txt
 testing 123

所以它会输出File.txt,如下所示:

C:\Windows\System32\test.exe
C:\Users\Limited\Downloads.txt

4 个答案:

答案 0 :(得分:2)

假设您已将文件内容加载到List<string>string[]

,则应返回您所追求的内容
        var result = potentialPaths.Where(Path.IsPathRooted).ToList();

此外,这是C#。

答案 1 :(得分:0)

看一下c#System.IO.Path

Google是你的朋友。

答案 2 :(得分:0)

您可以使用Regex,例如:

"([a-zA-Z]:)?(\\\\[a-zA-Z0-9_.-]+)+\\\\?"

http://www.regular-expressions.info/examples.html

答案 3 :(得分:0)

这里有一个如何在C ++中执行此操作的示例:http://www.gbresearch.com/axe/Reference.pdf

以下是摘录:

// windows path can start with a server name or letter
auto start_server = "\\\\" & +path_chars - '\\';
auto start_drive = r_alpha() & ':';
auto simple_path = (start_server | start_drive) & *('\\' & +path_chars);
auto quoted_path = '"' & (start_server | start_drive) &
*('\\' & +(space | path_chars)) & '"';
// path can be either simple or quoted
auto path = simple_path | quoted_path;
// rule to extract all paths
std::vector<std::wstring> paths;
size_t length = 0;
auto extract_paths = *(*(r_any() - (path >> e_push_back(paths) >> e_length(length)))
& r_advance(length));

您可以根据自己的需要自定义规则。规则也适用于unicode和二进制文件,无需更改。