在SFTP服务器上使用WinSCP通过C#创建目录

在SFTP服务器上使用WinSCP通过C#创建目录,c#,.net,sftp,winscp,winscp-net,C#,.net,Sftp,Winscp,Winscp Net,我们正在用C#编写一个控制台应用程序,通过使用SFTP协议的WinSCP.NET程序集将文件上载到文件服务器。我可以连接到服务器并将文件放到服务器上,但不能放在我想要的确切位置。请查找以下代码: 在哪里 path=\Repository\Scan\Java\ant\UAT zippath=C:\Temp\UAT\u 17-11-2016-19\u 40\u 05.zip sftppath=\Repository\Scan\Java\ant\UAT\UAT_17-11-2016-19_40_05.

我们正在用C#编写一个控制台应用程序,通过使用SFTP协议的WinSCP.NET程序集将文件上载到文件服务器。我可以连接到服务器并将文件放到服务器上,但不能放在我想要的确切位置。请查找以下代码:

在哪里

path=\Repository\Scan\Java\ant\UAT
zippath=C:\Temp\UAT\u 17-11-2016-19\u 40\u 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
。如果服务器上不存在这些目录,则不会创建它们

使用(会话=新会话())
{
会议。公开(会议选项);
{
if(System.IO.Directory.Exists(path))
{
WriteLine(“该路径已经存在。”);
}
其他的
{
DirectoryInfo di=System.IO.Directory.CreateDirectory(路径);
控制台写入线(
“已在{0}成功创建目录。”,
System.IO.Directory.GetCreationTime(路径));
}
尝试
{
WriteLine(“将文件放入文件夹”);
TransferOptions TransferOptions=新的TransferOptions();
transferOptions.TransferMode=TransferMode.Binary;
转让操作结果转让结果;
transferResult=session.PutFiles(zippath、sftpath、false、transferOptions);
transferResult.Check();
}                
捕获(例外e)
{
WriteLine(“进程失败:{0}”,e.ToString());
}
}
}
  • 不能使用
    System.IO.Directory.Exists
    检查SFTP目录是否存在,也不能使用
    System.IO.Directory.CreateDirectory
    在SFTP服务器上创建目录。使用WinSCP和方法:

  • SFTP路径使用斜杠,而不是反斜杠:

    path=/Repository/Scan/Java/ant/UAT
    sftpath=/Repository/Scan/Java/ant/UAT/UAT_17-11-2016-19_40_05.zip
    
if (session.FileExists(path))
{
    Console.WriteLine("That path exists already.");
}
else
{
    session.CreateDirectory(path);
    Console.WriteLine("The directory was created successfully");
}