官网地址:https://www.example-code.com/delphiDll/default.asp
实例代码:(不包括全局解锁) 密码生成器:https://www.cnblogs.com/hhmm99/p/11383027.html
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, SFtp; ... procedure TForm1.Button1Click(Sender: TObject); var sftp: HCkSFtp; hostname: PWideChar; port: Integer; success: Boolean; remoteFilePath: PWideChar; localFilePath: PWideChar; begin // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. sftp := CkSFtp_Create(); // Set some timeouts, in milliseconds: CkSFtp_putConnectTimeoutMs(sftp,5000); CkSFtp_putIdleTimeoutMs(sftp,10000); // Connect to the SSH server. // The standard SSH port = 22 // The hostname may be a hostname or IP address. hostname := 'sftp.example.com';// ip port := 22;// 端口 success := CkSFtp_Connect(sftp,hostname,port); if (success <> True) then begin Memo1.Lines.Add(CkSFtp__lastErrorText(sftp)); Exit; end; // Authenticate with the SSH server. Chilkat SFTP supports // both password-based authenication as well as public-key // authentication. This example uses password authenication. success := CkSFtp_AuthenticatePw(sftp,'myLogin','myPassword');// 账号密码 if (success <> True) then begin Memo1.Lines.Add(CkSFtp__lastErrorText(sftp)); Exit; end; // After authenticating, the SFTP subsystem must be initialized: success := CkSFtp_InitializeSftp(sftp); if (success <> True) then begin Memo1.Lines.Add(CkSFtp__lastErrorText(sftp)); Exit; end; // Download the file: localFilePath := 'c:/temp/hamlet.xml';// 本地保存路径 remoteFilePath := 'subdir1/subdir2/hamlet.xml'; // 服务器文件路径 // The ResumeDownloadFileByName method will check // the local file and begin downloading the remote file // at the appropriate point. For example, if the local // file is already 215624 bytes long, it will begin downloading // the remote file at the 215625'th byte -- appending to // the local file. success := CkSFtp_ResumeDownloadFileByName(sftp,remoteFilePath,localFilePath); if (success <> True) then begin Memo1.Lines.Add(CkSFtp__lastErrorText(sftp)); Exit; end; Memo1.Lines.Add('Success.'); CkSFtp_Dispose(sftp); end; © 2000-2019 Chilkat Software, Inc. All Rights Reserved.
解锁:
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Global; ... procedure TForm1.Button1Click(Sender: TObject); var glob: HCkGlobal; success: Boolean; status: Integer; begin // The Chilkat API can be unlocked for a fully-functional 30-day trial by passing any // string to the UnlockBundle method. A program can unlock once at the start. Once unlocked, // all subsequently instantiated objects are created in the unlocked state. // // After licensing Chilkat, replace the "Anything for 30-day trial" with the purchased unlock code. // To verify the purchased unlock code was recognized, examine the contents of the LastErrorText // property after unlocking. For example: glob := CkGlobal_Create(); success := CkGlobal_UnlockBundle(glob,'Anything for 30-day trial'); if (success <> True) then begin Memo1.Lines.Add(CkGlobal__lastErrorText(glob)); Exit; end; status := CkGlobal_getUnlockStatus(glob); if (status = 2) then begin Memo1.Lines.Add('Unlocked using purchased unlock code.'); end else begin Memo1.Lines.Add('Unlocked in trial mode.'); end; // The LastErrorText can be examined in the success case to see if it was unlocked in // trial more, or with a purchased unlock code. Memo1.Lines.Add(CkGlobal__lastErrorText(glob)); CkGlobal_Dispose(glob); end;
成功:
总结
以上所述是小编给大家介绍的delphi使用Chilkat 组件和库从SFTP下载文件的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
我正在使用JSCH从SFTP服务器下载文件。我使用单会话,多通道下载文件从不同文件夹位于SFTP。对于这个下载过程,我有一组排定的作业。每项工作将: 每次打开一个新通道()。通道名称:SFTP 使用方法获取要下载的文件总数的大小 如果size(Vector)大于零,则使用下载所有文件 最后关闭打开的通道。 在上面的过程中,大多数时候我得到的文件,找不到或没有这样的文件异常,并没有下载一些文件。 谁
文件上载返回“状态代码8-无效参数”响应。想知道是什么导致了这种情况。 我使用Chilkat sFTP在多个合作伙伴之间传输和接收文件,没有问题,但是对于一个新的合作伙伴,我看到以下错误。合作伙伴的技术团队正在询问是否正在调用被动连接,但我在Chilkat中看不到任何可以让我改变这一点的属性。 日志消息:
问题内容: 我正在使用jsch从服务器下载文件,下面是我的代码。 com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2629) at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:977) at com.jcraft.jsch.ChannelSftp.get(Channe
我正在尝试使用JSch从SFTP服务器下载文件到我的本地机器。无论文件大小如何,它只下载16371字节的数据并结束传输。它不会引发任何异常。如果文件小于16371字节,它将成功传输,但对于任何较大的文件,传输都会导致文件损坏。
代码看起来很好,但输出不是。有人建议吗
这是我必须做的:外部服务器定期生成3个文件:“FI.date.nnnnn”、“FS.date.nnnnn”和GO.date.nnnnn”。这三个文件与相同的日期和nnnnn(=序列号)相关联。每个“三元组”都是唯一的名称。当GO文件存在时,我必须下载这些文件。这个GO文件是空的。 我用骆驼这个路线: 我使用“include=GO.*”来等待GO文件。 在我的AfterReceiveGo中,我使用了