C 操作SFTP總結

2021-06-18 11:31:05 字數 2141 閱讀 9999

名字解釋

sftp:securefiletransferprotocol的縮寫,安全檔案傳送協議.相對於ftp多了乙個加密的過程。

1.購買第三方的類庫

2.使用開源的類庫(比較流行的:sharpssh,sshnet)

這裡用的是sharpssh.以下的內容基於sharpssh。

具體步驟

sharpssh原始碼結構

我們需要在sftp.cs 檔案中加入delete function,如下圖所示。

重新編譯,然後將生成的3個dll引用到專案中

2.基於sharpssh,實現sftp的常用操作

新建乙個sftphelper.cs

public class sftphelper

public sftphelper(sshconnectioninfo connectioninfo)

if (connectioninfo.identityfile != null)

}public bool connected

}public void connect()

}public void close()

}public bool upload(string localpath, string remotepath)

m_sshcp.put(localpath, remotepath);

return true;

}catch

}public bool download(string remotepath, string localpath)

m_sshcp.get(remotepath, localpath);

return true;

}catch

}public bool delete(string remotepath)

((sftp)m_sshcp).delete(remotepath);//剛剛新增的delete方法

return true;

}catch

}public arraylist getfilelist(string path)

return ((sftp)m_sshcp).getfilelist(path);

}catch}}

建立乙個輔助類

public class sshconnectioninfo

public string pass

public string host

public string user

}

上傳檔案

sshconnectioninfo objinfo = new sshconnectioninfo();

objinfo.user = "username";

objinfo.host = "host";

objinfo.identityfile = "key"; //有2中認證,一種基於privatekey,一種基於password

= "password"; 基於密碼

sftphelper objsftphelper = new sftphelper(objinfo);

objsftphelper.upload("localfile", "remotefile");

objsftphelper.download("remotefile", "localfile");
刪除檔案

objsftphelper.delete("remotefile");
遍歷遠端資料夾

arraylist filelist = objsftphelper.getfilelist("remotepath");

C 通過SFTP操作類 連線sftp

先上傳 sftp操作類 1 public class sftphelper225 26 sftp連線狀態 27public bool connected 2829 連線sftp 30public bool connect 3141 return true 42 43catch 4447 48 49 ...

scp和sftp常用操作

scp的全稱是secure copy remote file copy program 此命令是openssh clients附帶的,它的作用就是在機器之間實現拷貝,且機器之間的傳輸完全是加密的。最簡單的 scp 用法如下 root www scp pr l 速率 file 賬號 主機 目錄名 上傳...

scp和sftp常用操作

scp的全稱是secure copy remote file copy program 此命令是openssh clients附帶的,它的作用就是在機器之間實現拷貝,且機器之間的傳輸完全是加密的。最簡單的 scp 用法如下 root www scp pr l 速率 file 賬號 主機 目錄名 上傳...