Вот что я пытаюсь сделать:
Я хотел иметь некоторую функциональность FTP в одном из моих приложений (это только для меня, а не для бизнес-приложения или чего-то подобного), и, поскольку я не хотел писать весь этот код FTP-запроса/ответа для себя, я (будучи ленивым я человек) поищите в Интернете оболочку FTP.
Я нашел эта DLL.
Это все очень здорово, работает как шарм. За исключением одного: когда я запрашиваю LastWriteTime определенного файла НА FTP-сервере, 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 написать мне ParsingFormat, который сможет проанализировать вышеуказанный ответ FTP?