我想写一函数:
function FindZDFile(ZDFile:string;BH:string;STgrid:TStringGrid;const Path:string):string;
用来查找指定目录下,指定文件类型,并且给文件编号;
ZDFile:指定类型的文件;BH:在stringgrid中的编号;STgrid:查找的文件,发在里面(包括,文件名,大小,和路径),path:查找路径;
请各位大侠帮帮忙!小弟新手!小弟分少,以后一定补上!!!!

解决方案 »

  1.   

    查看findfirst,findnext的帮助,有例子的
      

  2.   

    贴一段代码给你参考:procedure GetFileList(Files: TStrings; Folder, FileSpec: string; SubDir: Boolean = True);
    {
      获取文件名列表
      Files:用来保存返回的文件名列表
      Folder:需要扫描的文件夹
      FileSpec:文件名,支持通配符*和?
      SubDir:是否包含子目录下的文件
    }
    var
      SRec: TSearchRec; //Required for Find* functions.
      FFolder: string;
    begin
      FFolder := IncludeTrailingPathDelimiter(Folder);
      if FindFirst(FFolder + FileSpec, faAnyFile, SRec) = 0 then
      begin
        repeat
          if ((SRec.Attr and faDirectory) <> faDirectory) and (SRec.Name[1] <> '.') then
            Files.Add(FFolder + SRec.Name);
        until FindNext(SRec) <> 0;
        FindClose(SRec);
      end;  if SubDir then
        if FindFirst(FFolder + '*', faDirectory, SRec) = 0 then
        begin
          repeat
            if ((SRec.Attr and faDirectory) = faDirectory) and (SRec.Name[1] <> '.') then
              GetFileList(Files, FFolder + SRec.Name, FileSpec, SubDir);
          until FindNext(SRec) <> 0;
          FindClose(SRec);
        end;
    end;
      

  3.   

    给你一段搜索mp3文件的参考代码procedure jianshi.GetMP3(Directory:string);
    var
      SearchRec: TSearchRec;
      ItemTemp: TTreeNode;
      s,s1,s2: string;
      i:Integer;
      geshou1, mingcheng1, mingcheng2, daxiao1: string;
    begin
      if Directory[Length(Directory)] <> '\' then
        Directory := Directory + '\';
      if FindFirst(Directory + '*.*', faAnyFile, SearchRec) = 0 then
      begin
        repeat
          if (SearchRec.Attr and fadirectory = fadirectory) and (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
          begin
            self.GetMP3(Directory + SearchRec.Name);
          end;
          if SearchRec.Attr and faArchive = faArchive then
          begin
            s := ExtractFileExt(SearchRec.Name);
            if UpperCase(s)='.MP3' then
            begin
              i:=Pos('-',s);
              if i>0 then
                s1:=Copy(s, i+1, Length(s)-i) //得到歌名.mp3
              else
                s1:=s;
              s1:=Trim(s1);          i:=Pos('.',s1);
              if i>0 then
                s:=Copy(s1, 1, i-1) //得到歌名.mp3
              else
                s:=s1;
              s:=Trim(s);
              if str.IndexOf(s)=-1 then
              begin
                str.Add(s);
                geshou1 := Trim(Copy(s, 1, pos('-', s) - 1)); //得到歌手
                mingcheng1 := Copy(s, pos('-', s) + 1, Length(s) - pos('-', s)); //得到歌名.mp3
                mingcheng2 := Trim(Copy(mingcheng1, 1, pos('.', mingcheng1) - 1)); //去掉.mp3
                daxiao1:= formatfloat('0.00', SearchRec.size / 1024 / 1024); //格式化大小            mingcheng:=mingcheng+mingcheng2+'|';//歌名
                geshou:=geshou+geshou1+'|';//歌手
                daxiao:=daxiao+daxiao1+'|';//大小
                dire:=dire+Directory+searchrec.Name+'|';//名称
              end;
            end;
          end;
        until FindNext(SearchRec) <> 0;
        FindClose(SearchRec);
      end;
    end;