Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menghuraikan Penyenaraian Direktori FTP dengan Cekap dalam C#?

Bagaimana untuk Menghuraikan Penyenaraian Direktori FTP dengan Cekap dalam C#?

Barbara Streisand
Barbara Streisandasal
2024-12-26 13:48:14970semak imbas

How to Efficiently Parse FTP Directory Listings in C#?

Menghuraikan WebRequestMethods.Ftp.ListDirectoryDetails FTP Response dalam C#

Kaedah FtpWebRequest.ListDirectoryDetails membenarkan mendapatkan maklumat terperinci tentang fail dan direktori pelayan FTP. Walau bagaimanapun, menghuraikan respons daripada kaedah ini boleh menjadi mencabar kerana format yang berbeza-beza yang digunakan oleh pelayan FTP yang berbeza.

Penghuraian Tersuai untuk Format Respons Berbeza

Untuk menghuraikan respons dengan lancar, kelas C# tersuai boleh dibuat yang mengendalikan format yang berbeza. Contohnya:

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);
    }
}

Menggunakan Klien FTP Moden dengan Respons Boleh Dibaca Mesin

Walau bagaimanapun, adalah disyorkan untuk menggunakan klien FTP yang menyokong arahan MLSD, yang mengembalikan penyenaraian direktori dalam format yang boleh dibaca mesin. Menghuraikan respons arahan LIST yang boleh dibaca manusia harus menjadi pilihan terakhir untuk pelayan lapuk yang tidak menyokong MLSD.

Pustaka pihak ketiga seperti WinSCP .NET menawarkan fungsi klien FTP dengan sokongan untuk MLSD dan pelbagai boleh dibaca manusia format penyenaraian. Ini memudahkan proses menghuraikan penyenaraian direktori FTP.

Faedah Menggunakan Pustaka Pihak Ketiga

  • Penghuraian yang boleh dipercayai: Menghuraikan MLSD respons dan pelbagai format arahan LIST dikendalikan dengan lancar.
  • Butiran yang luas: Respons MLSD yang boleh dibaca mesin memberikan maklumat terperinci seperti kebenaran fail, kumpulan dan pemilik.
  • Berbalik kepada perintah LIST: Jika MLSD tidak disokong, perpustakaan boleh menggunakan arahan LIST dan menukar respons menjadi konsisten format.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Penyenaraian Direktori FTP dengan Cekap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn