这是我正在尝试做的事情:
我要在我的一个应用程序中拥有一些 FTP 功能(这仅适用于我自己,而不是业务应用程序等)并且由于我不想为自己编写所有 FTP 请求/响应代码,所以我(懒惰伙计,我)在互联网上搜索 FTP 包装器。
我找到了这个 DLL。
这一切都非常棒,就像一个魅力。除了一件事:当我在 FTP 服务器上请求特定文件的 LastWriteTime 时,DLL 给了我奇怪的日期(即打印出虚构的日期)。我已经能够找到问题所在。每当您向 FTP 服务器发送请求时,它都会返回一个单行响应,该响应具有非常特殊的格式。现在我已经能够收集到,这种格式对于大多数服务器来说都是不同的,我的包装 DLL 带有 6 种预定义的响应格式,但我的 FTP 服务器发回了第 7 种格式。这是对请求和 REGEX 格式的响应:
-rw-r--r-- 1 user user 594 Jun 11 03:44 random_log.file
这是我的正则表达式解析格式:
"(?<dir>[\-d])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\w+\s+\w+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{4})\s+(?<name>.+)", _
"(?<dir>[\-d])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\d+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{4})\s+(?<name>.+)", _
"(?<dir>[\-d])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\d+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{1,2}:\d{2})\s+(?<name>.+)", _
"(?<dir>[\-d])(?<permission>([\-r][\-w][\-xs]){3})\s+\d+\s+\w+\s+\w+\s+(?<size>\d+)\s+(?<timestamp>\w+\s+\d+\s+\d{1,2}:\d{2})\s+(?<name>.+)", _
"(?<dir>[\-d])(?<permission>([\-r][\-w][\-xs]){3})(\s+)(?<size>(\d+))(\s+)(?<ctbit>(\w+\s\w+))(\s+)(?<size2>(\d+))\s+(?<timestamp>\w+\s+\d+\s+\d{2}:\d{2})\s+(?<name>.+)", _
"(?<timestamp>\d{2}\-\d{2}\-\d{2}\s+\d{2}:\d{2}[Aa|Pp][mM])\s+(?<dir>\<\w+\>){0,1}(?<size>\d+){0,1}\s+(?<name>.+)"
这些似乎都不能正确解析日期时间,因为我不知道该怎么做,请一位 REGEX 专业人士给我写一个能够解析上述 FTP 响应的 ParsingFormat 吗?