C# での WebRequestMethods.Ftp.ListDirectoryDetails の FTP 応答の解析
FtpWebRequest.ListDirectoryDetails メソッドを使用すると、ファイルとディレクトリに関する詳細情報を取得できます。 FTPサーバー。ただし、このメソッドからの応答の解析は、FTP サーバーごとに使用される形式が異なるため、困難になる可能性があります。
さまざまな応答形式のカスタム解析
応答を解析するにはシームレスに、さまざまな形式を処理するカスタム C# クラスを作成できます。例:
string pattern = @"\s+(\d+)(\w+)(\s+|\s*\d+[^ ].+)(.*)"; Regex regex = new Regex(pattern); FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/"); request.Credentials = new NetworkCredential("user", "password"); request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream()); while (!reader.EndOfStream) { string line = reader.ReadLine(); Match match = regex.Match(line); if (match.Success) { string fileName = match.Groups[4].Value.Trim(); long size = long.Parse(match.Groups[1].Value); string lastModified = match.Groups[2].Value + " " + match.Groups[3].Value; bool isDirectory = match.Groups[1].Value.StartsWith("d"); Console.WriteLine("{0}\t{1}\t{2}", fileName, lastModified, size); } }
機械読み取り可能な応答を備えた最新の FTP クライアントの使用
ただし、MLSD コマンドをサポートする FTP クライアントを使用することをお勧めします。これは、ディレクトリのリストを機械可読形式で返します。人間が判読可能な LIST コマンド応答の解析は、MLSD をサポートしていない古いサーバーの最後の手段である必要があります。
WinSCP .NET などのサードパーティ ライブラリは、MLSD および人間が判読できるさまざまなサポートを備えた FTP クライアント機能を提供します。リスト形式。これにより、FTP ディレクトリ リストの解析プロセスが簡素化されます。
サードパーティ ライブラリを使用する利点
以上がC# で FTP ディレクトリのリストを効率的に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。