解析ftp応答の解析ftp応答C#
問題のステートメント:
string pattern = "^(\\ d - \\ d - \\ d \\ s \\ d:\\ d(\\ w {2}))\\ s(
string pattern = "^(\\d -\\d -\\d \\s \\d :\\d (\\w{2}))\\s (|\\d )\\s (.*)$"; Regex regex = new Regex(pattern); while (!reader.EndOfStream) { string line = reader.ReadLine(); Match match = regex.Match(line); string s = match.Groups[1].Value; DateTime modified = DateTime.ParseExact(s, "MM-dd-yy hh:mmtt", culture, DateTimeStyles.None); s = match.Groups[2].Value; long size = (s != " ") ? long.Parse(s) : 0; string name = match.Groups[3].Value; Console.WriteLine("{0,-16} {1,9} {2}", name, size, modified); }
より良いアプローチは、最新のFTPサーバーによってサポートされるMLSDコマンドを活用することです。このコマンドは、ディレクトリリスト用の標準化されたマシン読み取り可能な形式を返します。 winscp .netなどの特定のサードパーティライブラリは、MLSDコマンドをサポートし、一貫した方法で解析結果を提供します。 foreach(ファイル内のremotefileinfoファイル) { console.writeLine( "{0、-16} {1,9} {2}"、file.name、file.length、file.lastwritetime); }
結論:
RemoteFileInfo[] files = session.EnumerateRemoteFiles(path, null); foreach (RemoteFileInfo file in files) { Console.WriteLine("{0,-16} {1,9} {2}", file.Name, file.Length, file.LastWriteTime); }ftpディレクトリリスト応答には、さまざまな形式を慎重に処理する必要があります。カスタムソリューションは可能ですが、最新のMLSDコマンドをサポートするライブラリを利用する方が信頼できます。このアプローチo同アプローチftp応答から関連するファイルとディレクトリメタデータを抽出するタスクを一貫した解析と簡素化します。
。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3