Avatar billede ingeman Seniormester
27. februar 2005 - 11:44 Der er 7 kommentarer og
1 løsning

FTP klient

ER der nogen som har kode til at bruge i Delphi til at køre FTP
klient ?
Avatar billede stone Forsker
27. februar 2005 - 13:18 #1
hvis du bruger componentet nmftp1, har jeg lidt.

det er kun selve forbindelsen men den kan udbygget med download upload som jeg også har liggende et eller andet sted..


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Psock, NMFtp, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    NMFTP1: TNMFTP;
    StatusBar1: TStatusBar;
    HostTxt: TEdit;
    PortTxt: TEdit;
    UserTxt: TEdit;
    PassTxt: TEdit;
    Edit7: TEdit;
    Edit6: TEdit;
    CheckBox1: TCheckBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Memo1: TMemo;
    procedure NMFTP1ListItem(Listing: String);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure NMFTP1Disconnect(Sender: TObject);
    procedure NMFTP1Connect(Sender: TObject);
    procedure NMFTP1Failure(var Handled: Boolean; Trans_Type: TCmdType);
    procedure NMFTP1ConnectionFailed(Sender: TObject);
    procedure NMFTP1Error(Sender: TComponent; Errno: Word; Errmsg: String);
    procedure NMFTP1HostResolved(Sender: TComponent);
    procedure NMFTP1InvalidHost(var Handled: Boolean);
    procedure NMFTP1PacketRecvd(Sender: TObject);
    procedure NMFTP1PacketSent(Sender: TObject);
    procedure NMFTP1Success(Trans_Type: TCmdType);
    procedure NMFTP1TransactionStart(Sender: TObject);
    procedure NMFTP1TransactionStop(Sender: TObject);
    procedure NMFTP1UnSupportedFunction(Trans_Type: TCmdType);
    procedure NMFTP1Status(Sender: TComponent; Status: String);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
var
  Q: Integer;

procedure TForm1.NMFTP1ListItem(Listing: String);
begin
Memo1.Lines.Add(IntToStr(Q)+': '+Listing);
  Inc(Q);

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
If CheckBox1.Checked then
  Begin
    NMFTP1.Proxy := Edit6.Text;
    NMFTP1.ProxyPort := StrToInt(Edit7.Text);
  End;
  NMFTP1.Host := HostTxt.Text;
  NMFTP1.Port := StrToInt(PortTxt.Text);
  NMFTP1.Timeout := 5000;
  NMFTP1.UserID := UserTxt.Text;
  NMFTP1.Password := PassTxt.Text;
  try
    NMFTP1.Connect;
  except
  On E:Exception do
      writeln(E.message);
  end
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Q := 1;
  try NMFTP1.NList;  except end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
NMFTP1.Disconnect;
end;

procedure TForm1.NMFTP1Disconnect(Sender: TObject);
begin
If StatusBar1 <> nil then
    StatusBar1.SimpleText := 'Disconnected';
end;

procedure TForm1.NMFTP1Connect(Sender: TObject);
begin
StatusBar1.SimpleText := 'Connected';
end;

procedure TForm1.NMFTP1Failure(var Handled: Boolean; Trans_Type: TCmdType);
begin
Case Trans_Type of
    cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir failure';
    cmdMakeDir: StatusBar1.SimpleText := 'MakeDir failure';
    cmdDelete: StatusBar1.SimpleText := 'Delete failure';
    cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir failure';
    cmdList: StatusBar1.SimpleText := 'List failure';
    cmdRename: StatusBar1.SimpleText := 'Rename failure';
    cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore failure';
    cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore failure';
    cmdDownload: StatusBar1.SimpleText := 'Download failure';
    cmdUpload: StatusBar1.SimpleText := 'Upload failure';
    cmdAppend: StatusBar1.SimpleText := 'UploadAppend failure';
    cmdReInit: StatusBar1.SimpleText := 'ReInit failure';
    cmdAllocate: StatusBar1.SimpleText := 'Allocate failure';
    cmdNList: StatusBar1.SimpleText := 'NList failure';
    cmdDoCommand: StatusBar1.SimpleText := 'DoCommand failure';
  end;
end;

procedure TForm1.NMFTP1ConnectionFailed(Sender: TObject);
begin
  ShowMessage('Connection Failed');
end;

procedure TForm1.NMFTP1Error(Sender: TComponent; Errno: Word;
  Errmsg: String);
begin
  ShowMessage('Error '+IntToStr(Errno)+': '+Errmsg);
end;

procedure TForm1.NMFTP1HostResolved(Sender: TComponent);
begin
  StatusBar1.SimpleText := 'Host resolved';
end;

procedure TForm1.NMFTP1InvalidHost(var Handled: Boolean);
begin
  ShowMessage('Invalid Host');
end;

procedure TForm1.NMFTP1PacketRecvd(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMFTP1.BytesRecvd)+' of '+IntToStr(NMFTP1.BytesTotal);
end;

procedure TForm1.NMFTP1PacketSent(Sender: TObject);
begin
  StatusBar1.SimpleText := IntToStr(NMFTP1.BytesSent)+' of '+IntToStr(NMFTP1.BytesTotal);
end;

procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
begin
Case Trans_Type of
    cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir success';
    cmdMakeDir: StatusBar1.SimpleText := 'MakeDir success';
    cmdDelete: StatusBar1.SimpleText := 'Delete success';
    cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir success';
    cmdList: StatusBar1.SimpleText := 'List success';
    cmdRename: StatusBar1.SimpleText := 'Rename success';
    cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore success';
    cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore success';
    cmdDownload: StatusBar1.SimpleText := 'Download success';
    cmdUpload: StatusBar1.SimpleText := 'Upload success';
    cmdAppend: StatusBar1.SimpleText := 'UploadAppend success';
    cmdReInit: StatusBar1.SimpleText := 'ReInit success';
    cmdAllocate: StatusBar1.SimpleText := 'Allocate success';
    cmdNList: StatusBar1.SimpleText := 'NList success';
    cmdDoCommand: StatusBar1.SimpleText := 'DoCommand success';
  end;
end;

procedure TForm1.NMFTP1TransactionStart(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Beginning Data Transfer';
end;

procedure TForm1.NMFTP1TransactionStop(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Data Transfer Complete';
end;

procedure TForm1.NMFTP1UnSupportedFunction(Trans_Type: TCmdType);
begin
Case Trans_Type of
    cmdChangeDir: ShowMessage('ChangeDir unsupported');
    cmdMakeDir: ShowMessage('MakeDir unsupported');
    cmdDelete: ShowMessage('Delete unsupported');
    cmdRemoveDir: ShowMessage('RemoveDir unsupported');
    cmdList: ShowMessage('List unsupported');
    cmdRename: ShowMessage('Rename unsupported');
    cmdUpRestore: ShowMessage('UploadRestore unsupported');
    cmdDownRestore: ShowMessage('DownloadRestore unsupported');
    cmdDownload: ShowMessage('Download unsupported');
    cmdUpload: ShowMessage('Upload unsupported');
    cmdAppend: ShowMessage('UploadAppend unsupported');
    cmdReInit: ShowMessage('ReInit unsupported');
    cmdAllocate: ShowMessage('Allocate unsupported');
    cmdNList: ShowMessage('NList unsupported');
    cmdDoCommand: ShowMessage('DoCommand unsupported');
  end;
end;

procedure TForm1.NMFTP1Status(Sender: TComponent; Status: String);
begin
//  If StatusBar1 <> nil then
//    StatusBar1.SimpleText := status;
end;

end.
Avatar billede ingeman Seniormester
27. februar 2005 - 18:16 #2
Jeg bruger delphi6 - kan det passe jeg ikke har compunenten ?
Avatar billede stone Forsker
27. februar 2005 - 20:25 #3
ja hvis du ikke har et faneblad med navnet fastnet
Avatar billede stone Forsker
27. februar 2005 - 21:54 #4
Avatar billede ingeman Seniormester
24. juni 2005 - 15:55 #5
svar
Avatar billede stone Forsker
24. juni 2005 - 18:22 #6
:)
Avatar billede stone Forsker
24. juni 2005 - 18:22 #7
:))) dammm den explorer har sgu sit eget liv
Avatar billede stone Forsker
07. juli 2005 - 13:45 #8
lukker du lige spørgsmålet ss
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester