Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с 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]

Выкладывай код


Наверх

Титульная страница Поиск, карта сайта Написать письмо