如何获得一个目录下的所以文件名,
如何获得一个目录下特定格式的所有文件名(如所以word文档的名称)

解决方案 »

  1.   

    请察看关于 FindFirst 和 FindNext的帮助。
    别老要代码,提高解决问题的能力更重要。
      

  2.   

    procedure copydirAtoB(sourdir,destdir:string);
    var
      searchrec:Tsearchrec;
    begin
      if (findfirst(Sourdir+'\*.doc',faAnyFile,searchrec)=0) then
      begin
        copyfile(pchar(Sourdir+'\'+searchrec.Name),pchar(destdir+'\'+searchrec.name),false);
        while (findnext(searchrec)=0) do
          copyfile(pchar(Sourdir+'\'+searchrec.Name),pchar(destdir+'\'+searchrec.name),false);
      end;
    end;
    *.doc  换为*.*为所有文件
      

  3.   

    var
      sr:TSearchRec;
      OK:Integer;
    begin
      OK:= findfirst('C\*.*',faAnyFile,sr)=0 ;//'C:\*.doc'
      while(OK=0) do
      begin 
        Memo1.lines.add(sr.name); 
        OK:=FindNext(sr);
      end;
      findclose(sr);
    end;
      

  4.   

    OK:= findfirst('C\*.*',faAnyFile,sr) ;//'C:\*.doc'
      

  5.   

    用 TFileListBox,给它 Directory 附值就行了,修改 Mask 属性就可以指定要打开的文件类型。
      

  6.   

    procedure MySearchFile(sPath, Ext : String);
    var
      F : TSearchRec;
      SearchResult : integer;
    begin
      SearchResult := FindFirst(sPath + '\*.*', faAnyFile,F);
      While SearchResult = 0 do
      begin
        if (F.Attr = faDirectory) and (F.name <> '.') and (F.Name <> '..') then
        begin
          MySearchFile(sPath + '\' + F.name, EXT);
        end
        else
        begin
          if UpperCase(ExtractFileExt(F.Name)) = Ext then
            Form1.ListBox1.items.add(sPath + '\' + F.name);
        end;
        SearchResult := FindNext(F);
      end;
      FindClose(F);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      MySearchFile('D:\Temp', '.DOC');
    end;
      

  7.   

    pazee(耙子)说得很对,不过有例子会学得快一点,给你一个例子吧
    procedure TMainForm.btnSearchClick(Sender: TObject);
    begin
      lbFile.Items.Clear;
      WaitForm:=TWaitForm.Create(Self);
      SearchFile(lbDirectory.Directory,Trim(Mark.Text));
      WaitForm.Free;
    end;procedure TMainForm.SearchFile(Directory,FileName: String);
    var
      SearchRec:TSearchRec;
      FindResult:Integer;
      function IsNotation(Dir:String):Boolean;
      begin
        Result:=(Dir='.')Or(Dir='..');
      end;
    begin
      Application.ProcessMessages;
      if WaitForm.HasCanceled then
      begin
        WaitForm.Hide;
        exit;
      end
      else
        WaitForm.Show;
      if Directory[Length(Directory)]<>'\' then
        Directory:=Directory+'\';
      FindResult:=FindFirst(Directory+FileName,faAnyFile,SearchRec);
      while FindResult=0 do
      begin
        if Not IsNotation(SearchRec.Name) then
          lbFile.Items.Add(Directory+SearchRec.Name);
        FindResult:=FindNext(SearchRec);
      end;
      FindResult:=FindFirst(Directory+'*.*',faDirectory,SearchRec);
      while FindResult=0 do
      begin
        if (SearchRec.Attr and faDirectory =faDirectory) and Not IsNotation(SearchRec.Name) then
          SearchFile(Directory+SearchRec.Name,FileName);
        FindResult:=FindNext(SearchRec);
      end;
      FindClose(SearchRec);
    end;
      

  8.   

    用我的吧,我的好用,还简单:)
    1、加一个BUTTON、一个COMBOBOX
    procedure TForm1.Button1Click(Sender: TObject);
    var
      SearchRec: TSearchRec;
    begin
      if FindFirst('D:\*.DBF',$00000010,SearchRec)=0 then
        begin
        if not((SearchRec.Name='.') or (SearchRec.Name='..'))  then
           ComboBox1.Items.Add(SearchRec.Name);
        while FindNext(SearchRec)=0 do
              if not((SearchRec.Name='.') or (SearchRec.Name='..'))  then
                    ComboBox1.Items.Add(SearchRec.Name);
        end
        else begin
          ShowMessage('没有找到');
          close;
        end;end;