.net操作sftp服务器
作者:网络转载 发布时间:[ 2015/4/22 14:14:01 ] 推荐标签:.net sftp服务器
因为项目的需要,整理了一段C#操作sftp的方法。
依赖的第三方类库名称为:SharpSSH 1.1.1.13.
代码如下:
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: using System.Collections.Specialized;
6: using System.Configuration;
7: using Tamir.SharpSsh;
8: using System.IO;
9: using Tamir.SharpSsh.jsch;
10:
11: namespace TestSftp
12: {
13: /// <summary>
14: /// 访问Sftp服务器方法(凭证请在config文件中配置)
15: /// </summary>
16: public class SftpClient : IDisposable
17: {
18: #region Properties
19:
20: /// <summary>
21: /// 主机名或IP
22: /// </summary>
23: public string HostName { get; private set; }
24: /// <summary>
25: /// 用户名
26: /// </summary>
27: public string UserName { get; private set; }
28: /// <summary>
29: /// 密码
30: /// </summary>
31: public string Password { get; private set; }
32:
33: /// <summary>
34: /// 端口号(默认端口为22)
35: /// </summary>
36: public int Port { get; private set; }
37:
38: #endregion
39:
40: private static readonly string defRemotePath = "/";//默认操作是都是从根目录开始。
41: private ChannelSftp m_sftp;
42: private Session m_session;
43: Channel m_channel;
44:
45: /// <summary>
46: /// 从配置文件中加载凭证信息
47: /// </summary>
48: public SftpClient()
49: {
50: var config = ConfigurationManager.GetSection("SftpServer") as NameValueCollection;
51: this.HostName = config["host_name"];
52: this.UserName = config["user_name"];
53: this.Password = config["password"];
54: this.Port = Convert.ToInt32(config["port"] ?? "22");//默认端口为22
55: }
56:
57: #region Events
58:
59: /// <summary>
60: /// SFTP获取文件
61: /// </summary>
62: /// <param name="remotePath"></param>
63: /// <param name="localPath"></param>
64: /// <returns></returns>
65:
66: public bool Get(string remotePath, string localPath)
67: {
68: try
69: {
70: string fullRemotePath = defRemotePath + remotePath.TrimStart('/');
71: Tamir.SharpSsh.java.String src = new Tamir.SharpSsh.java.String(fullRemotePath);
72: Tamir.SharpSsh.java.String dst = new Tamir.SharpSsh.java.String(localPath);
73: m_sftp.get(src, dst);
74: return true;
75: }
76: catch
77: {
78: return false;
79: }
80: }
81:
82: /// <summary>
83: ///SFTP存放文件
84: /// </summary>
85: /// <param name="localPath"></param>
86: /// <param name="remotePath"></param>
87: /// <returns></returns>
88: public void Put(string localPath, string remotePath)
89: {
90: Tamir.SharpSsh.java.String src = new Tamir.SharpSsh.java.String(localPath);
91: string fullRemotePath = defRemotePath + remotePath.TrimStart('/');
92: Tamir.SharpSsh.java.String dst = new Tamir.SharpSsh.java.String(fullRemotePath);
93: m_sftp.put(src, dst);
94: }
95:
96:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11