关于网友提出的“ 调试程序运行就死掉?”问题疑问,本网通过在网上对“ 调试程序运行就死掉?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 调试程序运行就死掉?
描述: 这是一个用idFTP遍历整个目录----下载的程序
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP,IdFTPList;
type
TForm1 = class(TForm)
idFTP: TIdFTP;
Button1: TButton;
lb_num: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure FTP_DownloadDir(var idFTP : TIdFtp;RemoteDir,LocalDir : string);
label Files ;
var
i,DirCount : integer;
begin
if not DirectoryExists(LocalDir + RemoteDir) then
ForceDirectories(LocalDir + RemoteDir);
idFTP.ChangeDir(RemoteDir);
idFTP.List(nil);
DirCount := idFTP.DirectoryListing.Count ;
if DirCount = 0 then
begin
idFTP.ChangeDirUp;
idFTP.List(nil);
end;
for i := 0 to DirCount - 1 do
begin
if DirCount <> idFTP.DirectoryListing.Count then
begin
repeat
idFTP.ChangeDirUp;
idFTP.List(nil);
until DirCount = idFTP.DirectoryListing.Count ;
end;
if idFTP.DirectoryListing[i].ItemType= ditDirectory then
FTP_DownloadDir(idFTP,idFTP.DirectoryListing[i].FileName,LocalDir + RemoteDir + '\')
else
begin
idFTP.Get(idFTP.DirectoryListing[i].FileName,LocalDir + RemoteDir + '\' +idFTP.DirectoryListing[i].FileName,true);
Form1.lb_num.Caption := IntToStr(StrToInt(Form1.lb_num.Caption) + 1);
Form1.lb_num.Update;
if i = DirCount - 1 then
begin
idFTP.ChangeDirUp;
idFTP.List(nil);
end;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
idFTP.Host:='ip';
idFTP.Username:='username';
idFTP.Password:='12345678';
idFTP.Connect();
if idFTP.Connected then
begin
idFTP.ChangeDir('');
FTP_DownloadDir(idFTP,'nihao','c:\123\');
idFTP.Disconnect ;
end;
end;
end.
以上介绍了“ 调试程序运行就死掉?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3684951.html