![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с FTP, коннектится но не находит ресурсы [D6, Win2k]
TOleg © (2004-03-24 14:15:00)Помогите, кто может!!!
Проблема следующая, работаю с FTP используя компоненты NMFTP.
Когда конектчусь к хосту, проблем нет, только метод List показывает, что файлов там нет, хотя реально лежит метров 200.
С теми же параметрами захожу по FTP с любого проводника, доступ ко всему есть. Вопрос, что нужно сделать, или где прописать, чтобы при коннеткте к хосту с проги были видны файлы.
TOleg (2004-03-25 11:09:00) [1]Вот код почти всей проги. По событию OnSuccess должна отрабатываться процедура FTPDirectoryList. Но она показывает что ничего на удаленном ресурсе нет, хотя в OnListItem Listing содержит информацию о текущей папке и ее файлах. Вопрос в том, что тут не правильно, почему не отрабатываются процедуры?
procedure TForm1.Button1Click(Sender: TObject);
begin
if NMFTP1.Connected then
begin
NMFTP1.Disconnect;
end else
begin
NMFTP1.Vendor := NMOS_AUTO;
NMFTP1.Host := UserHost;
NMFTP1.UserID := UserId;
NMFTP1.Password := Pass;
NMFTP1.Connect;
//----- выводим список файлов и директорий ----------------
Memo2.Clear;
Memo2.Lines.Add(NMFTP1.CurrentDir);
NMFTP1.ChangeDir(Dir);
Memo2.Lines.Add(NMFTP1.CurrentDir);
NMFTP1.ChangeDir('Web');
Memo2.Lines.Add(NMFTP1.CurrentDir);
NMFTP1.ChangeDir('kons');
Memo2.Lines.Add(NMFTP1.CurrentDir);
NMFTP1.ChangeDir('docs');
Memo2.Lines.Add(NMFTP1.CurrentDir);
//NMFTP1.Mode(MODE_BYTE);
NMFTP1.Listen(true);
NMFTP1.List;
end;
end;
procedure TForm1.NMFTP1Disconnect(Sender: TObject);
begin
Memo1.Lines.Add('Отсоединение от FTP!');
end;
procedure TForm1.NMFTP1PacketRecvd(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMFTP1.BytesRecvd)+' bytes received out of '+IntToStr(NMFTP1.BytesTotal);
end;
procedure TForm1.NMFTP1PacketSent(Sender: TObject);
begin
StatusBar1.SimpleText := IntToStr(NMFTP1.BytesSent)+' bytes sent out of '+IntToStr(NMFTP1.BytesTotal);
end;
procedure TForm1.NMFTP1TransactionStart(Sender: TObject);
begin
Memo1.Lines.Add('Transaction Start');
end;
procedure TForm1.NMFTP1TransactionStop(Sender: TObject);
begin
Memo1.Lines.Add('Transaction Stop');
end;
procedure TForm1.NMFTP1Failure(var Handled: Boolean; Trans_Type: TCmdType);
begin
case Trans_Type of
cmdChangeDir: Memo1.Lines.Add('ChangeDir failure');
cmdMakeDir: Memo1.Lines.Add('MakeDir failure');
cmdDelete: Memo1.Lines.Add('Delete failure');
cmdRemoveDir: Memo1.Lines.Add('RemoveDir failure');
cmdList: Memo1.Lines.Add('List failure');
cmdRename: Memo1.Lines.Add('Rename failure');
cmdUpRestore: Memo1.Lines.Add('UploadRestore failure');
cmdDownRestore: Memo1.Lines.Add('DownloadRestore failure');
cmdDownload: Memo1.Lines.Add('Download failure');
cmdUpload: Memo1.Lines.Add('Upload failure');
cmdAppend: Memo1.Lines.Add('UploadAppend failure');
cmdReInit: Memo1.Lines.Add('Reinitialize failure');
cmdAllocate: Memo1.Lines.Add('Allocate failure');
cmdNList: Memo1.Lines.Add('NList failure');
cmdDoCommand: Memo1.Lines.Add('DoCommand failure');
cmdCurrentDir: Memo1.Lines.Add('CurrentDir failure');
end;
end;
procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
var
I,k: Integer;
begin
case Trans_Type of
cmdList:
begin
for I := 0 to (StringGrid1.ColCount - 1) do StringGrid1.Cols[I].Clear;
k:=NMFTP1.FTPDirectoryList.name.Count;
StringGrid1.RowCount := k;
StringGrid1.ColCount := 4;
StringGrid1.Cells[0, 0] := 'Filename';
StringGrid1.Cells[1, 0] := 'File Size';
StringGrid1.Cells[2, 0] := 'Modified Date';
StringGrid1.Cells[3, 0] := 'Attributes';
for I := 0 to (NMFTP1.FTPDirectoryList.name.Count - 1) do
with NMFTP1.FTPDirectoryList do
begin
StringGrid1.Cells[0, I+1] := name[I];
StringGrid1.Cells[1, I+1] := Size[I];
StringGrid1.Cells[2, I+1] := ModifDate[I];
StringGrid1.Cells[3, I+1] := Attribute[I];
end;
Memo1.Lines.Add('List success');
end;
cmdChangeDir:
begin
Memo1.Lines.Add('ChangeDir successful');
//NMFTP1.List;
end;
cmdMakeDir: Memo1.Lines.Add('MakeDir successful');
cmdRemoveDir: Memo1.Lines.Add('RemoveDir successful');
cmdDelete: Memo1.Lines.Add('Delete successful');
cmdRename: Memo1.Lines.Add('Rename successful');
cmdReInit: Memo1.Lines.Add('Reinitialize successful');
cmdCurrentDir: Memo1.Lines.Add('CurrentDir successful');
cmdUpRestore: Memo1.Lines.Add('UploadRestore success');
cmdDownRestore: Memo1.Lines.Add('DownloadRestore success');
cmdDownload: Memo1.Lines.Add('Download success');
cmdUpload: Memo1.Lines.Add('Upload success');
cmdAppend: Memo1.Lines.Add('UploadAppend success');
cmdAllocate: Memo1.Lines.Add('Allocate success');
cmdNList: begin
for I := 0 to (StringGrid1.ColCount - 1) do StringGrid1.Cols[I].Clear;
k:=NMFTP1.FTPDirectoryList.name.Count;
StringGrid1.RowCount := k;
StringGrid1.ColCount := 4;
StringGrid1.Cells[0, 0] := 'Filename';
StringGrid1.Cells[1, 0] := 'File Size';
StringGrid1.Cells[2, 0] := 'Modified Date';
StringGrid1.Cells[3, 0] := 'Attributes';
for I := 0 to (NMFTP1.FTPDirectoryList.name.Count - 1) do
with NMFTP1.FTPDirectoryList do
begin
StringGrid1.Cells[0, I+1] := name[I];
StringGrid1.Cells[1, I+1] := Size[I];
StringGrid1.Cells[2, I+1] := ModifDate[I];
StringGrid1.Cells[3, I+1] := Attribute[I];
end;
Memo1.Lines.Add('NList success');
end;
cmdDoCommand: Memo1.Lines.Add('DoCommand success');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if NMFTP1.Connected then
begin
NMFTP1.Disconnect;
end;
Close;
end;
procedure TForm1.NMFTP1ListItem(Listing: String);
begin
Memo2.Lines.Add(Listing);
end;
Piter (2004-03-24 20:06:00) [2]Выкладывай код