delphi如何搜索某一文件夹下的所有文件夹,显示在ListBox内?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi如何搜索某一文件夹下的所有文件夹,显示在ListBox内?相关的知识,希望对你有一定的参考价值。

delphi如何搜索某一文件夹下的所有文件夹,显示在ListBox内?
用递归查找后死机,到底怎么办啊?

参考技术A function GetChildDir(const AParentDir: string): Tstringlist;
var
Dir: TSearchRec;
Ret: integer;
Path: string;
begin
Result:=Tstringlist.Create;
try
Path := ExtractFilePath(AParentDir);
Ret := Sysutils.FindFirst(AParentDir, faAnyFile, Dir);
if Ret <> NO_ERROR then exit;
try
while ret=NO_ERROR do
begin
if (Dir.Attr in [faDirectory]) and (Dir.Name[1] <> '. ') then
begin
Result.Add(Dir.name);
Result.addstrings(GetChildDir(Path + Dir.Name + '\*.* '));
end;
Ret := Sysutils.FindNext(Dir);
end;
finally
Sysutils.FindClose(Dir);
end;
except
Result.Free;
end;
end;

调用这个函数,再把返回值读入LISTBOX就可以了。本回答被提问者采纳

我如何输出delphi中某一列下的所有行?

procedure TfrmPlayers.btnPlayersClick(Sender: TObject);
var
  i: integer;
begin
  memoPlayers.Clear;
  with dbgPlayers do
    begin
      for i := 0 to FieldCount-1 do
      begin
        memoPlayers.Lines.Add(Fields[i].AsString);
      end;
    end;
end;

我找到了用于输出第一行中所有列的解决方案。但我想让它在某一列下输出所有行。

答案

您需要遍历所有行(如注释中提到的@BugFinder)。您可以考虑包括两个附加步骤:

  • 记住数据集中的记录,以便以后使用TBookMark导航。
  • 使用DisableControls插入数据时禁用数据显示。

示例(根据您的代码):

procedure TfrmPlayers.btnPlayersClick(Sender: TObject);
var
   i: integer;
   b: TBookMark;
begin
   // Clear existing data
   memoPlayers.Clear;

   // Get the data
   b := dbgPlayers.GetBookmark;
   dbgPlayers.DisableControls;
   try
      dbgPlayers.First;
      while not dbgPlayers.Eof do begin
         for i := 0 to dbgPlayers.FieldCount-1 do begin
            memoPlayers.Lines.Add(dbgPlayers.Fields[i].AsString);
         endfor;
         dbgPlayers.Next;
      endwhile;
   finally
      if dbgPlayers.BookmarkValid then dbgPlayers.GotoBookmark(b);
      dbgPlayers.FreeBookmark(b);
      dbgPlayers.EnableControls;
   endtry;
end;

以上是关于delphi如何搜索某一文件夹下的所有文件夹,显示在ListBox内?的主要内容,如果未能解决你的问题,请参考以下文章

delphi如何删除目录和目录下的所有文件

DELPHI如何获取某目录下的所有文件名?

用delphi如何一次删除某个目录下的所有文件?

ubuntu中在终端下如何查找具有某一特定字符串的文件?

delphi 获取根目录下的文件名及子目录下的文件名

如何将hdfs里某一目录下的所有文件的文件名读取出来