0

c#コードを介してFTPサーバーに接続しようとしていますが、ファイルとディレクトリのリストを取得しています。そして、私はArrayList(すべての属性を含む)に保存しています。FTPサーバーの種類はSYSftpコマンドで確認できます。UNIXベースのファイルの正規表現を使用してfile\directories属性を解析します。しかし、WindowsFTPサーバーファイルを解析するための表現はありません。私はそれを作るのに助けが必要です。

04-30-09  10:40AM       <DIR>          Acrobat
12-08-09  10:36PM                 9058 AuthCheck.zip
12-06-09  12:49PM                  174 desktop.ini
11-09-09  03:33PM       <DIR>          FailedPDF

これらを解析する必要があります。日付、時刻、Dir \ File、ファイルの名前

助けてください。ありがとう。

4

3 に答える 3

1

C#についてはよくわかりませんが、正規表現が必要な場合は、次の方法を試してください。

^(\d\d-\d\d-\d\d)\s+(\d\d:\d\d(AM|PM))\s+([\w<>]*)\s+(\d*)\s+([\w\._\-]+)\s*$

$ 1 =日付、$ 2 =時間、$ 3 =午前または午後、$ 4 =タイプ(nullの可能性があります)、$ 5 =サイズ(dirの場合はnull)、$6=名前

または$4が唯一または空の場合

^(\d\d-\d\d-\d\d)\s+(\d\d:\d\d(AM|PM))\s+(<DIR>)?\s+(\d*)\s+([\w\._\-]+)\s*$

「<」と「>」はc#では特別な文字ではないと思います

于 2009-12-16T07:11:53.937 に答える
0
^(\d{2}-\d{2}-\d{2}\s*\d{2}:\d{2}(A|P)M)\s*(<DIR>){0,1}\s*(\d*)\s*(\w)\s*$

キャプチャグループ:0:日時1:ディレクトリ2:FileSize(またはディレクトリの場合はnull)3:名前

私はコンパイラを手元に持っていないので、それをテストすることはできませんが、開始するには十分に近いはずです。

于 2009-12-16T07:00:11.033 に答える
0

線の構造が固定されているようです。したがって、これを簡単に行うことができます。

Date fileDate;
bool isDir;
int fileSize;
string fileName;

fileDate=line.Substring(0,18).ParseExact("MM-dd-yy  hh-sstt");
isDir=line.Substring(24,5)=="DIR";
if (!isDir)
{
    fileSize=int.Parse(line.Substring(29,10).Trim());
}
fileName=line.Substring(39);
于 2009-12-16T07:05:38.573 に答える