如何将指定目录下的所有文件夹在ListBox显示出来?(40分)

  • 主题发起人 主题发起人 飞来石
  • 开始时间 开始时间

飞来石

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将指定目录下的所有文件夹在ListBox显示出来?
 
用第3方控件
 
遍历目录下的所有文件夹,获其名,给之
 
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;
 
接受答案了.
 

Similar threads

后退
顶部