用FindFirstFile吗怎么用?那几个参数我不会用!!

解决方案 »

  1.   

    这是一个搜寻指定目录下所有文件及下级子目录下所有文件的过程,希望对你有用处。
    procedure Tform1.selectfile(directory:string);
      var
         search:tsearchrec;
    begin
    movielist.Cursor:=crhourglass;
    if length(directory)>0 then
    begin
       if directory[length(directory)]<>'\' then
          directory:=directory+'\';  //如果路径名后面没有'\'则给路径名加上'\'
       if findfirst(directory+'*.*',faanyfile,search)=0 then
          repeat//循环读取目录下的文件
            if (search.attr and fadirectory>0) then//如果是目录的话则进行递归调用
              begin
                if (search.name<>'.') and (search.name<>'..') then
                //如果文件名不为'.' 和'..'
                 begin
                   selectfile(directory+search.name);//递归调用搜寻子目录
                 end;
             end
       else//如果当前目录下面没有子目录,就将文件保存到listview中去
              if (search.name<>'.') then if (search.name<>'..') then
                 if checkfilename(search.name)=true then
               setlistview(directory+search.name);
               //如果不为子目录,并且经过了文件检查则增加这个文件
          until findnext(search)<>0;
    findclose(search);
    movielist.Cursor:=crarrow;
    end;
    end;
      

  2.   

    比如找c:\my.text这个文件:)function IsFileExist : boolean;
    var
      hFindFile:THANDLE;
      findStruct:TWIN32FindData;
    begin
      hFindFile := FindFirstFile('c:\my.txt',findStruct);
      if hFindFile == INVALID_HANDLE_VALUE then
        Result := false;
      else Result := true;
      FindClose(hFindFile);
    end;
      

  3.   

    说明一下:
    directory是路径信息
    movielist是一个TListView控件。
      

  4.   

    我也写了一个类似 mahaixing(超级赛亚人) 写的递归调用的例子不过在对整个硬盘进行搜索的时候
    会报错,Access File Error 水能帮我分析一下问题出在那边??
    如果仅搜索单个目录时就没有关系!
    有什么解决办法吗??各位大侠