1
我们正在使用C#编写控制台应用程序,通过使用SFTP协议的WinSCP .NET程序集将文件上载到文件服务器。我能够连接到服务器并将文件放置到服务器,但不是我想要的确切位置。请找到下面的代码:通过C#在SFTP服务器上使用WinSCP创建目录
其中
path = \Repository\Scan\Java\ant\UAT
zippath = C:\Temp\UAT_17-11-2016-19_40_05.zip
sftppath = \Repository\Scan\Java\ant\UAT\UAT_17-11-2016-19_40_05.zip
ZIP文件得到放置在与名称为RepositoryScanJavaantUATUAT_17-11-2016-19_40_05.zip
Repository
文件夹级别。如果目录在服务器上不存在,则它们不会被创建。
using (Session session = new Session())
{
session.Open(sessionOptions);
{
if (System.IO.Directory.Exists(path))
{
Console.WriteLine("That path exists already.");
}
else
{
DirectoryInfo di = System.IO.Directory.CreateDirectory(path);
Console.WriteLine(
"The directory was created successfully at {0}.",
System.IO.Directory.GetCreationTime(path));
}
try
{
Console.WriteLine("Put Files in the folder");
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = session.PutFiles(zippath, sftppath, false, transferOptions);
transferResult.Check();
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
在此先感谢!
我曾尝试使用你的建议,但它抛出一个异常与消息说:“不允许递归调用”。 – Jordan
@Jordan你不能通过使用纯粹的Q&A代码来获得这个例外。你的代码必须更复杂。如果您遇到问题,请提出新问题。 –
我很确定它只有你在这里提出的代码导致异常。我调试了它,异常在** session.FileExists(path)**被调用后立即抛出。这个问题在WinSCP论坛上也有报道,请查看[这里](https://winscp.net/forum/viewtopic.php?t=11193) – Jordan