procedure TForm1.Button1Click(Sender: TObject);
begin
    NMFTP1.ChangeDir('/temp'); //检测temp目录是否存在
end;
procedure TForm1.NMFTP1Failure(var Handled: Boolean; Trans_Type: TCmdType);
begin
    case Trans_Type of
    cmdChangeDir: Memo1.Lines.Add('目录不存在');
    end;
end;procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
begin
    case Trans_Type of
    cmdChangeDir: showmessage('目录存在');
    end;
end;

解决方案 »

  1.   

    如果这样的目录不存在,changedir()会抛出异常的?
    怎样屏蔽?(我用try怎么屏蔽不了?)
      

  2.   

    至于判断文件是否存在可用 Download 方法,
    onsuccess 、onfailure 的 Trans_type 为 cmdDownload 
      

  3.   

    用下法
    try
      NMFTP1.ChangeDir('/temp'); 
    except
    end; 
    在delphi编译环境下肯定会抛出异常,但在delphi环境下执行应用程序就不会了
      

  4.   

    nod
    在delphi下用try,
    F9调试的时候,异常是一定会出来的,build以后执行exe就可以了
      

  5.   

    对呀那为什么不这样写呢:
      try
          ftp.ChangeDir(dir);
      except
          ftp.MakeDirectory(dir);
          ftp.ChangeDir(dir);
      end;
      

  6.   

    to cqiu2000: 呵呵,忘了,问的不当:)如果是在多线程中公用一个nmftp,如和用onFailure和onSuccess判断和区分到底是哪个线程中的目录不存在呢?
      

  7.   

    多线程中最好不要公用一个nmftp
    如果公用的话,传输数据反而会变慢
      

  8.   

    应该是的,可是如果用多个ftp,那么服务器的连接数就会增大的上个问题有解嘛?
      

  9.   

    这和TServerSocket的客户连接有点像。
    好的,谢了。
    给分。