运行程序,创建目录以后,搜索该目录下的文件,除了.和..两个以外,还找到了其他文件(空目录)!而退出程序以后在运行,还是操作那个目录,在下面就只找到.和..两个东东了,到底是怎么回事呢?小弟我是没辄了,求各位高手帮忙!!!

解决方案 »

  1.   

    to firetoucher(风焱) :
    搜索到了一个文件名为1的文件,我是这样搜索的
    var
      hFindFile:Cardinal;
      FindFileData:WIN32_FIND_DATA;
    begin  
      hFindFile:=FindFirstFile('*.*',FindFileData);
      if hFindFile<>INVALID_HANDLE_VALUE then
      begin
        repeat
          tfile:=FindFileData.cFileName;
          if (tfile='.') or (tfile='..') then
            Continue
          else
            begin
              ...
            end;
        until FindNextFile(hFindFile,FindFileData)=false;
      end;
    end;to ljmanage(过客) :
    我用过这个函数,也是一样的结果
      

  2.   

    你用这种方法搜索看看,这是将目录加到舒上去的,你稍微修改一下
    procedure TMyClass.DirToTreeView(ATreeView: TTreeView; ADirectory: string;
      ARoot: TTreeNode; AIncludeFiles: Boolean);
    var
      SearchRec : TSearchRec;
      ItemTemp : TTreeNode;
    begin
      with ATreeView.Items do
      try
        BeginUpdate;
        if ADirectory[Length(ADirectory)] <> '\' then
          ADirectory := ADirectory +'\';
        if FindFirst(ADirectory + '*.*', faDirectory, SearchRec) = 0 then
        begin
          repeat
          if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
          begin
            if (SearchRec.Attr and faDirectory > 0) then
              ARoot := AddChild(ARoot, SearchRec.Name);
            ItemTemp := ARoot.Parent;
            DirToTreeView(ATreeView, ADirectory + SearchRec.Name, ARoot, AIncludeFiles);
            ARoot := ItemTemp;
          end
          else if AIncludeFiles then
            if SearchRec.Name[1] <> '.' then
              AddChild(ARoot, SearchRec.Name);
          until FindNext(SearchRec) <> 0;
          FindClose(SearchRec);
        end;
      finally
        EndUpdate;
      end;
    end;
      

  3.   

    to  ljmanage(过客):
    大哥,不怎么看得懂,能不能把你给我的程序加点注释啊?或者干脆把其中搜索任意文件的内容给我好了,特谢!!!
      

  4.   

    begin  {$I-}
      { 从Edit1得到目录名称,然后判断有没有,没有就创建 }
    MkDir(Edit1.Text);
      if IOResult <> 0 then
        MessageDlg('Cannot create directory', mtWarning, [mbOk], 0)
      else
        MessageDlg('New directory created', mtInformation, [mbOk], 0);end;