在 C# FluentFTP 中将 FTP 文件内容读取为字符串
Read FTP file contents to a string in C# FluentFTP
我的 class 继承自 FluentFTP,我创建了一个这样的 class。我需要在这个 class 中创建一个名为 Read
的函数。 read函数的作用是把我从FTP中读取出来的文件内容逐行读取出来,return一个字符串给我。我稍后会处理旋转的字符串。 FluentFTP 中有这种方法吗?如果有 none,我应该如何创建函数?
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);
}
要使用 FluentFTP 将文件读取为字符串,您可以使用 FtpClient.Download
method 将文件内容写入 Stream
或 byte[]
数组。以下示例使用后者。
if (!client.Download(out byte[] bytes, "/remote/path/file.txt"))
{
throw new Exception("Cannot read file");
}
string contents = Encoding.UTF8.GetString(bytes);
我的 class 继承自 FluentFTP,我创建了一个这样的 class。我需要在这个 class 中创建一个名为 Read
的函数。 read函数的作用是把我从FTP中读取出来的文件内容逐行读取出来,return一个字符串给我。我稍后会处理旋转的字符串。 FluentFTP 中有这种方法吗?如果有 none,我应该如何创建函数?
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);
}
要使用 FluentFTP 将文件读取为字符串,您可以使用 FtpClient.Download
method 将文件内容写入 Stream
或 byte[]
数组。以下示例使用后者。
if (!client.Download(out byte[] bytes, "/remote/path/file.txt"))
{
throw new Exception("Cannot read file");
}
string contents = Encoding.UTF8.GetString(bytes);