Delphi 检索子目录时从路径中删除的驱动器号
我试图在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
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;