转贴:把某个制定文件夹下的所有文件夹都倒入一个TTreeView来显示的函数 procedure TMainForm.DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles: Boolean);var SearchRec : TSearchRec; ItemTemp : TTreeNode; begin with Tree.Items do try BeginUpdate;// if Directory[Length(Directory)] <> '\' then Directory := Directory + '\'; if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then begin if (SearchRec.Attr and faDirectory > 0) then Root := AddChild(Root, SearchRec.Name); ItemTemp := Root.Parent; DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles); Root := ItemTemp; end else if IncludeFiles then if SearchRec.Name[1] <> '.' then AddChild(Root, SearchRec.Name); until SysUtils.FindNext(SearchRec) <> 0; FindClose(SearchRec); end; finally EndUpdate; end;end;
var sr: TSearchRec; FileAttrs: Integer; fileList: TStrings; i: Integer; begin fileList := TStringList.Create; FileAttrs := $FFFF; if FindFirst(YourDir + '\*.*', FileAttrs, sr) = 0 then begin repeat FileList.Add(sr.Name); until FindNext(sr) <> 0; FindClose(sr); end; FileLIst.Free; end;
上面得过程,下面是返回所有文件名得函数。 function f: TStrings(YourDir: String); var sr: TSearchRec; FileAttrs: Integer; fileList: TStrings; begin fileList := TStringList.Create; FileAttrs := $FFFF; if FindFirst(YourDir + '\*.*', FileAttrs, sr) = 0 then begin repeat FileList.Add(sr.Name); until FindNext(sr) <> 0; FindClose(sr); end; FileLIst; result := FileList; end;
谢谢, to ttzzj(标识符) FileLIst是个啥类型,怎么转成string???
哈哈,如下了: procedure TForm1.Button1Click(Sender: TObject); var SearchRec:TSearchRec; ext,AppPath:string; begin listbox1.Items.Clear; AppPath:='d:\aa\'; ext:='*.*'; FindFirst(AppPath+ext,faAnyFile-faDirectory,SearchRec); listbox1.Items.Add(SearchRec.Name); while FindNext(SearchRec)=0 do listbox1.Items.Add(SearchRec.Name); listbox1.items为你需要的结果 end;
procedure TMainForm.DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; IncludeFiles: Boolean);var
SearchRec : TSearchRec;
ItemTemp : TTreeNode;
begin with Tree.Items do
try
BeginUpdate;//
if Directory[Length(Directory)] <> '\' then Directory := Directory + '\';
if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
begin
repeat
if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then
begin
if (SearchRec.Attr and faDirectory > 0) then
Root := AddChild(Root, SearchRec.Name);
ItemTemp := Root.Parent;
DirToTreeView(Tree, Directory + SearchRec.Name, Root, IncludeFiles);
Root := ItemTemp;
end
else if IncludeFiles then
if SearchRec.Name[1] <> '.' then
AddChild(Root, SearchRec.Name);
until SysUtils.FindNext(SearchRec) <> 0; FindClose(SearchRec);
end;
finally
EndUpdate;
end;end;
sr: TSearchRec;
FileAttrs: Integer;
fileList: TStrings;
i: Integer;
begin
fileList := TStringList.Create;
FileAttrs := $FFFF;
if FindFirst(YourDir + '\*.*', FileAttrs, sr) = 0 then
begin
repeat
FileList.Add(sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;
FileLIst.Free;
end;
function f: TStrings(YourDir: String);
var
sr: TSearchRec;
FileAttrs: Integer;
fileList: TStrings;
begin
fileList := TStringList.Create;
FileAttrs := $FFFF;
if FindFirst(YourDir + '\*.*', FileAttrs, sr) = 0 then
begin
repeat
FileList.Add(sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;
FileLIst;
result := FileList;
end;
to ttzzj(标识符)
FileLIst是个啥类型,怎么转成string???
procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec:TSearchRec;
ext,AppPath:string;
begin
listbox1.Items.Clear;
AppPath:='d:\aa\';
ext:='*.*';
FindFirst(AppPath+ext,faAnyFile-faDirectory,SearchRec);
listbox1.Items.Add(SearchRec.Name);
while FindNext(SearchRec)=0 do
listbox1.Items.Add(SearchRec.Name);
listbox1.items为你需要的结果
end;