/// <summary> /// WinSCP数据传输 /// </summary> /// <param name="winscptype">选择操作方式:上传、下载</param> /// <param name="srcPath">源目录</param> /// <param name="objPath">目标目录</param> /// <param name="hostName">IP地址</param> /// <param name="userName">账户</param> /// <param name="password">密码</param> /// <returns></returns> public int WinSCP(WinSCPType winscptype, string srcPath, string objPath, string hostName, string userName, string password, int portNumber, string sshHostKeyFingerprint) { try { Setup session options SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Sftp, HostName = hostName, UserName = userName, Password = password, PortNumber = portNumber, SshHostKeyFingerprint = sshHostKeyFingerprint, //SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...=" }; using (Session session = new Session()) { // Connect session.Open(sessionOptions); // Upload files TransferOptions transferOptions = new TransferOptions(); transferOptions.TransferMode = TransferMode.Binary;<br> TransferOperationResult transferResult; switch (winscptype) { case WinSCPType.Download: transferResult = session.GetFiles(srcPath, objPath, false , transferOptions); break ; case WinSCPType.Upload: transferResult = session.PutFiles(srcPath, objPath, false , transferOptions); break ; default : transferResult = session.GetFiles(srcPath, objPath, false , transferOptions); break ; } // Throw on any error transferResult.Check(); // Print results foreach (TransferEventArgs transfer in transferResult.Transfers) { Console.WriteLine( "{1} of {0} succeeded" , transfer.FileName, Enum.Parse( typeof (WinSCPType), winscptype.GetHashCode().ToString()).ToString()); } } return 0; } catch (Exception e) { Console.WriteLine( "Error: {0}" , e); return 1; } }<br><br> |