string host = @"ftphost";
string username = "user";
string password = "********";
string localFileName = System.IO.Path.GetFileName(@"localfilename");
string remoteDirectory = "/export/";
using (var sftp = new SftpClient(host, username, password))
{
sftp.Connect();
var files = sftp.ListDirectory(remoteDirectory);
foreach (var file in files)
{
if (!file.Name.StartsWith("."))
{
string remoteFileName = file.Name;
if (file.LastWriteTime.Date == DateTime.Today)
Console.WriteLine(file.FullName);
File.OpenWrite(localFileName);
string sDir = @"localpath";
Stream file1 = File.OpenRead(remoteDirectory + file.Name);
sftp.DownloadFile(remoteDirectory, file1);
}
}
}
我正在使用SSH.NET(Renci.SshNet
)库来处理SFTP服务器。我需要做的是根据今天的日期从SFTP服务器上抓取特定文件夹中的文件,然后将这些文件从SFTP服务器复制到我的本地驱动器或服务器。以上是我拥有的代码,但它不起作用。有时它会说文件不存在,但有时我将下载的文件不会存在于我的本地服务器上,但我需要下载那一天上传到远程文件夹中的任何文件。
有人能看一眼并找出问题吗?我相信它与流的部分有关。除了上传文件外,我没有太多使用FTP的经验。我使用的代码基于此示例。
string ext = fi.Extension;
和一个switch。因为LOVE-LETTER-FOR-YOU.TXT.vbs
将会是一个误报,或者使用Path.GetExtension(myFilePath);
。 - Drag and Drop