我在循环中调用下面的方法遍历一个文件夹,每调用一次,内存都增加,一直循环,用到的内存就一直增加
各位大虾帮忙看看,是哪里还需要释放内存? 还是这个方法哪里可以改进?
多谢!
==========================================================================
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;