![](/img/trans.png)
[英]Download all files except a specific folder from FTP server using WinSCP .NET assembly
[英]Code to download file from FTP with WinSCP .NET assembly does not connect, but I can connect in WinSCP GUI
我需要通過WinSCP .NET程序集從FTP下載文件。 我目前有此代碼,但錯誤提示身份驗證失敗。
try
{
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Ftp,
HostName = "172.xx.xxx.xx",
UserName = "usersample",
Password = "P@ssw0rd",
PortNumber = 21
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Download files
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult =
session.GetFiles(
"/HST/sample.txt", "C:\\Users\\john\\Documents\\SampleFolder\\",
false, transferOptions);
// Throw on any error
transferResult.Check();
// Print results
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Download of {0} succeeded", transfer.FileName);
}
Console.ReadLine();
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e);
Console.ReadLine();
}
我從此參考中獲得了代碼: https : //winscp.net/eng/docs/library_session_getfiles
最初,它具有以下功能:
SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
但是我刪除了它,因為我沒有它,而且我認為它是針對SFTP的(不確定),我已經手動嘗試過憑據,它們可以工作。 我可以登錄。 請幫忙。 謝謝。
針對您的情況有WinSCP常見問題解答:
為什么可以使用GUI時無法使用腳本進行連接/傳輸(反之亦然)?
首先,最簡單的解決方案是在GUI會話中使用“ 生成傳輸代碼”功能,以獲得有效的代碼模板。
生成傳輸代碼對話框打開。 選擇.NET程序集選項卡 ,並確保選擇了C#語言。
除了用於SSH連接的憑據之外,您還需要SSH主機密鑰指紋。
您應該從服務器管理員處獲得SSH主機密鑰指紋以及憑據。 知道主機密鑰指紋並因此能夠對其進行驗證是保護SSH連接不可或缺的一部分。 它可以防止中間人攻擊。
這可以幫助您獲取主機密鑰:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.