WinSCP放置文件失败代码2但通过File.Exists

时间:2015-08-11 15:25:56

标签: c#-4.0 file-upload winscp-net

我注意到当我使用WinSCP去PUT文件时,它失败并出现代码2错误,说明:

  

{WinSCP.SessionRemoteException:文件或文件夹'fileToPut.xml'不存在。 ---> WinSCP.SessionRemoteException:系统错误。

     

代码:2。系统找不到指定的文件

     

---内部异常堆栈跟踪结束---

     

在WinSCP.OperationResultBase.Check()

     

at transferWinSCP(String fileName)in c:\ Program.cs:line 136}

然而,就在它到达这一行之前:

TransferOperationResult transferResult = session.PutFiles(fileName, path, false, transferOptions);`

我确保fileName确实存在。

有什么想法吗?

这是我的代码:

using (Session session = new Session())
{
   //start Log
   session.SessionLogPath = logPath;

   //connect
   session.Open(sessionOptions);

   //upload
   TransferOptions transferOptions = new TransferOptions {TransferMode = TransferMode.Binary};
   if (File.Exists(fileName))
   {
      TransferOperationResult transferResult = session.PutFiles(fileName, path, false,  transferOptions); //put the file on the ftp server
      transferResult.Check();

      foreach (TransferEventArgs transfer in transferResult.Transfers)
      {
         Console.Write("upload of {0} succeeded", transfer.FileName);
      }
   }
}

2 个答案:

答案 0 :(得分:0)

我目前遇到同样的问题。 但是我发现如果你改变路径而不是使用“\”尝试“/”有时会得到不同的结果。以为你可能想尝试一下。但是现在改变它并没有帮助我所以我被困在同一条船上。

答案 1 :(得分:0)

这最终为我工作:Path.GetFullPath(fileName)