在计算机某盘上有多个文件,文件名分别为1,2,3,4等
请问如何通过程序找的相对应的文件名呢?如

解决方案 »

  1.   

    procedure TForm1.findfiles(Apath:string);
    var
      FSearchrec,DSearchrec:TSearchRec;
      FindResult:integer;
      function getdirname(dirname:string):string;
      begin
        if dirname[length(dirname)]<>'\' then
         result:=dirname+'\'
        else
         result:=dirname;
      end;
      function IsDirNotation(Adirname:string):bool;
      begin
        result:=(adirname='.') or (adirname='..');
      end;
    begin
      apath:=getdirname(apath);
      FindResult:=findfirst(Apath+'*.pas',faAnyFile+faHidden+faSysFile+faReadOnly,FSearchRec);
      try
        while findresult=0 do
        begin
          listbox1.Items.Add(lowercase(Apath+FSearchRec.Name));
          findresult:=findnext(FSearchRec);
        end;
        findresult:=findfirst(apath+'*.*',faDirectory,DSearchRec);
        while findresult=0 do
        begin
          if ((DSearchRec.Attr and faDirectory)= faDirectory)
            and not IsDirNotation(DSearchRec.Name) then
            findfiles(apath+DSearchRec.Name);
          findresult:=findnext(DSearchRec);
        end;
      finally
        findclose(FSearchRec);
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if edit1.text='' then
      begin
        showmessage('Input Directory First');
        exit;
      end;
      listbox1.items.Clear;
      findfiles(trim(edit1.text));
    end;