先使用 NuGet 安裝 SSH.NET 套件,或是使用 .NET CLI 執行以下指令安裝:
範例程式碼:
另外如果沒有 SFTP 主機可以測試,可以使用 Free SFTP Server 這個工具做測試,開啟網頁就可以建立一個臨時的 SFTP 主機,有效時間為一小時。
參考資料:
github - sshnet/SSH.NET
dotnet add package SSH.NET
範例程式碼:
using SftpClient client = new("192.168.0.2", 22, "ruyut", "ruyut");
try
{
client.Connect();
if (client.IsConnected)
{
// 建立資料夾
client.CreateDirectory("/myfolder");
var localPath = "C:\\Users\\ruyut\\Downloads\\518256171954995345.jpg";
var remotePath = "/myfolder/a.jpg";
client.UploadFile(File.OpenRead(localPath), remotePath);
Console.WriteLine("File uploaded");
Console.WriteLine("查看遠端檔案:");
foreach (var sftpFile in client.ListDirectory("/myfolder"))
{
Console.WriteLine($"\t{sftpFile.FullName}");
}
client.Disconnect();
}
}
catch (SshConnectionException e)
{
Console.WriteLine($"連接失敗: {e.Message}");
}
catch (SshAuthenticationException e)
{
Console.WriteLine($"身份驗證失敗: {e.Message}");
}
catch (SftpPermissionDeniedException e)
{
Console.WriteLine($"沒有權限: {e.Message}");
}
catch (Exception e)
{
Console.WriteLine($"錯誤: {e.Message}");
}
另外如果沒有 SFTP 主機可以測試,可以使用 Free SFTP Server 這個工具做測試,開啟網頁就可以建立一個臨時的 SFTP 主機,有效時間為一小時。
參考資料:
github - sshnet/SSH.NET
感謝分享~
回覆刪除