0

我的类继承自 FluentFTP,我创建了一个这样的类。我需要创建一个Read在这个类中调用的函数。读取函数的目的是通过逐行读取我从 FTP 读取的文件的内容,向我返回一个字符串。稍后我将处理旋转字符串。FluentFTP 中有没有这样的方法?Ff 没有,我应该如何创建函数?

using FluentFTP;

public class CustomFtpClient : FtpClient
{
    public CustomFtpClient(
            string host, int port, string username, string password) :
        base(host, port, username, password)
    {
        Client = new FtpClient(host, port, username, password);
        Client.AutoConnect();
    }

    private FtpClient Client { get; }

    public string ReadFile(string remoteFileName)
    {
        Client.BufferSize = 4 * 1024;
        return Client.ReadAllText(remoteFileName);
    }
}

我不能这样写,因为Client我正在写来自 FTP。由于我在之前的代码中从 SFTP 派生了它,因此我想使用与其类似的代码片段,但 FluentFTP 中没有这样的代码片段。我应该如何在函数中执行操作Read

在另一个文件中,我想这样称呼它。

CustomFtpClient = new CustomFtpClient(ftpurl, 21, ftpusername, ftppwd);
var listedfiles = CustomFtpClient.GetListing("inbound");
var onlyedifiles = listedfiles.Where(z =>
    z.FullName.ToLower().Contains(".txt") || z.FullName.ToLower().Contains("940"))
    .ToList();

foreach (var item in onlyedifiles)
{
    //var filestr = CustomFtpClient.ReadFile(item.FullName);
}
4

1 回答 1

0

要使用 FluentFTP 将文件读取到字符串,您可以使用将文件内容写入或数组的FtpClient.Download方法。以下示例使用后者。Streambyte[]

if (!client.Download(out byte[] bytes, "/remote/path/file.txt"))
{
    throw new Exception("Cannot read file");
}

string contents = Encoding.UTF8.GetString(bytes);
于 2021-11-11T19:01:20.310 回答