これが私がやろうとしていることです:
私は自分のアプリの1つにFTP機能を含める必要があります(これは私自身のためであり、ビジネスアプリケーションなどではありません)。FTP要求/応答コードをすべて自分で書きたくなかったので、私は(怠惰です)男私は)FTPラッパーをインターネットで検索します。このDLL
を見つけました。
これはすべて非常に素晴らしく、魅力のように機能します。1つを除いて、FTPサーバー上の特定のファイルのLastWriteTimeを要求すると、DLLから奇妙な日付が表示されます(つまり、架空の日付が出力されます)。私は問題を見つけることができました。FTPサーバーにリクエストを送信するたびに、非常に特殊な形式の1行の応答が返されます。これで収集できたものです。この形式はほとんどのサーバーで異なります。ラッパー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を書いてください。