ホームページ > バックエンド開発 > C++ > C# で可変形式の FTP ディレクトリ リストを確実に解析するにはどうすればよいですか?

C# で可変形式の FTP ディレクトリ リストを確実に解析するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-28 20:22:21
オリジナル
859 人が閲覧しました

How Can I Reliably Parse Variably Formatted FTP Directory Listings in C#?

C# を使用した変数形式のディレクトリ リストの FTP 応答の解析

問題ステートメント:

FTP の場所を監視するサービスを開発する場合、FTP から受信した応答を解析する必要があります。 WebRequestMethods.Ftp.ListDirectoryDe​​tails メソッドを使用した FtpWebRequest。この問題は、FTP サーバー ソフトウェア間で応答形式が異なるために発生します。たとえば、あるサーバーは Windows スタイルの DOS 形式で応答を返し、別のサーバーは Linux スタイルの UNIX 形式に準拠する可能性があります。

カスタム C# 解析ソリューション:

FtpWebRequest クラスはこれらの形式のバリエーションをネイティブに処理しませんが、カスタム C# ソリューションを作成できます。 DOS スタイルの形式の場合、次のコードを利用できます:

string pattern = "^(\d+-\d+-\d+\s+\d+:\d+(\w{2}))\s+(<DIR>|\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 != "<DIR>") ? long.Parse(s) : 0;
    string name = match.Groups[3].Value;

    Console.WriteLine("{0,-16} {1,9}  {2}", name, size, modified);
}
ログイン後にコピー

MLSD コマンドを使用した最新のソリューション:

より良いアプローチは、MLSD コマンドを活用することです。 、最新の FTP サーバーでサポートされています。このコマンドは、ディレクトリ リストの標準化された機械可読形式を返します。 WinSCP .NET などの特定のサードパーティ ライブラリは、MLSD コマンドをサポートし、一貫した方法で解析結果を提供します。

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 コマンドをサポートするライブラリを利用する方がより信頼性が高くなります。このアプローチにより、一貫した解析が行われ、FTP 応答から関連するファイルとディレクトリのメタデータを抽出するタスクが簡素化されます。

以上がC# で可変形式の FTP ディレクトリ リストを確実に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート