在字符串中拆分多个路径

0 c# string

我有一个命令,可能类似于以下内容:

SYNC C:\Users\Fox Mulder\SyncClient C:\Users\Fox Mulder\SyncServer

这是一个将通过控制台应用程序输入的命令.它将由Console.ReadLine读取.

我如何解析命令,以便我可以获得两个单独的目录路径?

我无法分割空间,因为这将导致"Fox Mulder"的分裂.

我怎么能轻易解析这个?

STW*_*STW 7

该命令应以空格分隔,每个路径都用引号括起来,以正确包含其嵌入的字符串:

SYNC "C:\Users\Fox Mulder\SyncClient" "C:\Users\Fox Mulder\SyncServer"
Run Code Online (Sandbox Code Playgroud)

如果你不能要求引用那么事情会变得更加丑陋 - 考虑如下的路径

c:\documents and settings\mom and dad\documents\family vacations\2009\the bahama ramas\
Run Code Online (Sandbox Code Playgroud)

字符串拆分""将是一个令人头痛的问题.蛮力方法是测试路径的第一部分(c:\ documents),如果它无效则附加下一部分(c:\ documents and)等......当然它是丑陋的,非-performant,并且充满了潜在的问题(如果"c:\ documents"和"c:\ documents and settings"都有效会怎么样?你的代码最终会变得非常怯懦和偏执.

  • 但这是大多数命令行的行为方式.这是常见的做法 (2认同)