Delphi 检索子目录时从路径中删除的驱动器号

Delphi 检索子目录时从路径中删除的驱动器号,delphi,delphi-7,subdirectory,Delphi,Delphi 7,Subdirectory,我试图在delphi中检索目录的子目录,我正在使用此函数: procedure GetSubDirectories(const directory : string; list : TStrings) ; var sr : TSearchRec; begin try if FindFirst(IncludeTrailingPathDelimiter(directory) + '*.*', faDirectory, sr) < 0 then Exit

我试图在delphi中检索目录的子目录,我正在使用此函数:

procedure GetSubDirectories(const directory : string; list : TStrings) ;
 var
   sr : TSearchRec;
 begin
   try
     if FindFirst(IncludeTrailingPathDelimiter(directory) + '*.*', faDirectory, sr) < 0 then
       Exit
     else
     repeat
       if ((sr.Attr and faDirectory <> 0) AND (sr.Name <> '.') AND (sr.Name <> '..')) then
         List.Add(IncludeTrailingPathDelimiter(directory) + sr.Name) ;
     until FindNext(sr) <> 0;
   finally
     SysUtils.FindClose(sr) ;
   end;
 end;
messagebox中显示的字符串是例如:“:\Program Files”。我尝试在
列表中添加一个breakpoitn。在GetSubDirectories过程中添加
,然后变量看起来像“C:\ProgramFiles”


为什么要删除消息框中的驱动器号?

ValueFromIndex
要求您在
TStringList
上使用键值对,您要查找的可能是
TStringList
Strings
属性,这也是类的默认属性


因此,您可以使用
文件夹[0]
文件夹.Strings[0]

谢谢,就这么简单。这可能是一个很好的开始链接
procedure TForm1.FormCreate(Sender: TObject);
  var
    folders: TStringList;
  begin
    folders := TStringList.Create;
    try
      GetSubDirectories('c:\', folders);
      ShowMessage(folders.ValueFromIndex[0]);
    finally
      FreeAndNil(folders);
   end;
  end;