好像有个API函数可以的,我忘了,不知哪位好心人提个醒

解决方案 »

  1.   

    var
      FolderStr:String;
      bi:TBROWSEINFO;
      Str:array[0..MAX_PATH] of Char;
      pIDListItem:PItemIDList;
      pStr:PChar;
      Executed:Boolean;
    begin
      pStr:=nil;
      bi.hwndOwner:=GetActiveWindow;
      bi.pidlRoot:=nil;
      bi.pszDisplayName:=@str;
      bi.ulFlags:= BIF_RETURNONLYFSDIRS;     
      bi.lpfn:=nil;
      bi.lpszTitle:='选择文件的目录……';
      pIDListItem:= SHBrowseForFolder(bi);          
      if pIDListItem<>nil then
      begin
        pStr:=@Str;
        SHGetPathFromIDList(pIDListItem, pStr);
        Executed:=True;
      end
      else
        Executed:=False;  if Executed then
      begin
        cb_SearchAllDisk.Checked:=False;
        FolderStr:=pStr;
        if Length(FolderStr)>3 then FolderStr:=FolderStr+'\';
        Edit_SearchDir.Text:=FolderStr;
      end;
      

  2.   

    var
      Dir: string;SelectDirectory('请选择', '', dir);
            if dir <> '' then
    begin
      showmessage(dir);
    end;