var
  tmpStr: string;
begin
  tmpStr := ExtractFilePath(aaa.dtt);
end;

解决方案 »

  1.   

    如果你的aaa.dtt包含了文件路径信息(如'c:\windows\aaa.dtt')的话用ExtractFilePath和ExtractFileDir都是可以的,但如果只是'aaa.dtt'的话是不可以的
      

  2.   

    同意楼上的,因为在你的机器中不同的路径可能存在一个以上的'aaa.dtt',
    我们一般讲的机器上一个文件的文件名,必须包括路径,例如,某个程序路径下有个文件的文件名'aaa.dtt',那么可以用GetCurrentDir+'\aaa.dtt'来调用
      

  3.   

    同意楼上的,因为在你的机器中不同的路径可能存在一个以上的'aaa.dtt',
    我们一般讲的机器上一个文件的文件名,必须包括路径,例如,某个程序需要调用同路径下的文件'aaa.dtt',那么可以用GetCurrentDir+'\aaa.dtt'来调用
      

  4.   

    比如要找自己的程序的存放路径,可以
    ExtractFilePath(application.exename);
      

  5.   

    你说的是不是就是WINDOWS 的文件搜索功能啊!!
    我也不知道,请教高手~~~~~~~
      

  6.   

    那么如果是没有exe的文件,比如只生成dll的文件中如何找到所要找的文件路径呢,我刚才用GetCurrentDir+'\aaa.dtt'试了一下,如果是在exe中可以,在没有exe的就不行,应该怎么办呢?
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      aaa: string;
    begin
      aaa:=ExtractFileDir('aaa.dtt');
      label1.Caption := tmpStr;
      end;为什么我的LABEL1里总是得不到路径?
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      aaa: string;
    begin
      aaa:=ExtractFileDir('aaa.dtt');
      label1.Caption := tmpStr;
      end;为什么我的LABEL1里总是得不到路径?
      

  9.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      aaa:string;
    begin
      aaa:=ExtractFileDir('aaa.dtt');
      label1.Caption:=aaa;
      end;为什么我的LABEL1里总是得不到路径?
      

  10.   

    你的使用方法有问题。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      aaa:string;
      bbb;string; 
    begin
      bbb:=ExtractFileName(application.ExeName)+'aaa.dtt';//bbb应该是全路径,如:"C:\windows\aaa.dtt";也可以由其他方法得到。
      if fileexist(bbb)Then
      begin
        aaa:=ExtractFileDir(bbb);
        label1.Caption:=aaa;
       
      end;
    end;
      

  11.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      aaa:string;
      bbb:string;
    begin
      bbb:=ExtractFileName('boot.ini')+'boot.ini';
      if fileexists(bbb)Then
      begin
        aaa:=ExtractFileDir(bbb);
        label1.Caption:=aaa;
      end;
    end;还是不行!?
      

  12.   

    我的问题是如果 不同文件夹中有相同名字的文件,ExtractFilePath返回什么 ?
      

  13.   

    怎么没有人回答我啊,在做webservice时,服务端用dll的文件,可是绝对路径总不太好,而相对路径确不能象exe文件时可以通过GetCurrentDir或ExtractFileDir来取出,有人知道该怎么办吗?
      

  14.   

    TO kevincomein(白菜):我现在要得就是得到一个文件路径(假设文件只有唯一)
      

  15.   

    TO kevincomein(白菜):我现在要得就是得到一个文件路径(假设文件只有唯一)
      

  16.   

    我也问过类似问题,没有获得答案。也就是说,Exe文件可以通过ExtractFileName(application.ExeName)获得,进程内Com Server(.dll)只能通过注册表获得,而任一文件不知如何获得。关注!!
      

  17.   

    呵呵,如果文件事先的路径是知道的,可以考虑用ExtractFileDirectory,但是如果不知道,那就是windows里面的文件查找功能了
      

  18.   

    回复人: jsp___3(没高手了吗) (  ) 信誉:110  2002-05-20 16:44:00  得分:0  
    ----------------------------------------------------------------
    procedure TForm1.Button1Click(Sender: TObject);
    var
      aaa:string;
    begin
      aaa:=ExtractFileDir('aaa.dtt');
      label1.Caption:=aaa;
      end;为什么我的LABEL1里总是得不到路径?
    =============================================================
    分析:上面的代码,执行后aaa的值一定为空,因为字符串aaa.dtt本身就不包住路径!
    =============================================================执行以下测试代码,或许你会发现点什么!ShowMessage(ExtractFileDir('D:\Program Files\aaa.dtt'));
    Showmessage(ExtractFileDir('aaa.dtt'));
    --------------------------------------------------------------按你的意思,事先你可能不知道文件aaa.dtt所在的位置(Path)!
    这时,你需要通知函数FileFind(好像是这个)来查找,如果找到,它会返回字符串!然后你再用ExtractFileDir来截取!
    --------------------------------------------------------------
    另外:
      请注意ExtractFileDir跟ExtractFilePath的区别,自己写代码测试,不多哆嗦!
      

  19.   

    to:CoolSlob() 谢谢你的回复,你说的意思我知道,ExtractFileDir跟ExtractFilePath的区别我也知道了,但这不是最重要的,我现在想知道的就是如何得到aaa.dtt文件的路径。
    “你需要通知函数FileFind(好像是这个)来查找,如果找到,它会返回字符串!”……我为什么没有找到函数FileFind?另外能举个例子?
      

  20.   

    更正:
      不是FileFind 函数,而是FineSearch函数(可能这个解决不了你的问题)你可以使用FindFirst跟FindNext结合~~~~~~~~~~不过,我真的不知道你的问题是什么~~~~~~~~~
      

  21.   


    你可以到我的网站上下载查找文件函数的Demohttp://CoolSlob.8u8.com/Download/Cleaner.src.zip