【发布时间】:2022-06-10 17:58:51
【问题描述】:
我可以从 sftp 服务器获取文件的文件名,但我不会读取文件。我想要的是从 sftp 服务器读取文件,然后解析文本文件而不在本地保存文件,然后将其存储在另一个 sftp 服务器上。代码如下。
const string host = "*****";
const string username = "*****";
const string password = "*****";
const int port = 22;
const string workingdirectory = "/folder";
long date = Convert.ToInt64(DateTime.Now.AddDays(-2).ToString("ddMMyy"));
string dates = Convert.ToString(date);
//Console.WriteLine(responseText);
string fileName = "asr" + dates + ".txt";
Console.WriteLine("Creating client and connecting");
using (var client = new SftpClient(host, port, username, password))
{
client.Connect();
Console.WriteLine("Connected to {0}", host);
client.ChangeDirectory(workingdirectory);
var listDirectory = client.ListDirectory(workingdirectory);
Console.WriteLine("Listing directory:");
foreach (var fi in listDirectory)
{
Console.WriteLine("Changed directory to {0}", workingdirectory);
if (fi.Name.Contains("asr010322.txt"))
{
Console.WriteLine(fi.Name);
StreamReader reader = new StreamReader(fileName);
Console.WriteLine(reader);
}
}
using (var fileStream = new FileStream(uploadfile, FileMode.Open))
{
Console.WriteLine("Uploading {0} ({1:N0} bytes)", uploadfile, fileStream.Length);
client.BufferSize = 4 * 1024; // bypass Payload error large files
client.UploadFile(fileStream, Path.GetFileName(uploadfile));
}
}
【问题讨论】:
-
string content = reader.ReadToEnd();而不是尝试打印阅读器本身?