我想取得某一目录下的所有文件夹名称,该如何实现请大家帮忙!!!急!!

解决方案 »

  1.   

    用FINDFIRST找出第一个文件夹
    然后用递归找出子文件夹里的文件夹
      

  2.   

    function ListDirs(Path: string; List: TStringList): Integer;
    var
      FindData: TWin32FindData;
      FindHandle: THandle;
      FileName: string;
      AddToList: Boolean;
    begin
      Result := 0;
      AddToList := Assigned(List);  if Path[Length(Path)] <> '\' then
        Path := Path + '\';  Path := Path + '*.*';  FindHandle := Windows.FindFirstFile(PChar(Path), FindData);
      while FindHandle <> INVALID_HANDLE_VALUE do
      begin
        FileName := StrPas(FindData.cFileName);
        if (FileName <> '.') and (FileName <> '..') and
          ((FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0) then
        begin
          Inc(Result);
          if AddToList then
            List.Add(FileName);
        end;    if not Windows.FindNextFile(FindHandle, FindData) then
          FindHandle := INVALID_HANDLE_VALUE;
      end;
      Windows.FindClose(FindHandle);
    end;使用:
    var
      s: TStringList;
    begin
      s := TStringList.Create;
      ListDirs('c:\windows\', s);
      ListBox1.Items.AddStrings(s);
      s.Free;
    end;
      

  3.   

    http://community.csdn.net/Expert/topic/3518/3518318.xml?temp=.5150263
      

  4.   

    用FINDFIRST找出第一个文件夹,然后用FindNext来循环判断是否没有了文件,依次得到文件名