如何得到一个指定目录下的所有文件夹的名称(是文件夹)
解决方案 »
- ListView分类显示数据,怎么操作
- onclick事件
- 有关DELPHI版本的问题,急!
- 使用fastreport打印报表后的事件如何写?急
- 面向对象问题,好象很简单,但是自己不会,高分求救
- 关于crc-16(x16+x12+x2+1)的问题?
- 怎样让程序在任务栏不显示图标和标题!谢谢!急!!!
- 难题:在两个程序间拖动!!!高手赐教
- 急!高分求救!delphi中如何调api控制"音量控制"中麦克风的静音的选择框.对麦克风静音控制.
- 如何实现 ACDSee 的那种 Fit View 功能?
- >>>> 急求"网站详细设计书",晚上6:00结贴 <<<<
- 我已经过了容易激动的年龄,但我看到这篇文章,我还是愤怒了!
procedure GetChildDir(Path:string;var ResultList:TStringList);
var SearchRec : TSearchRec;
Attr : integer;
Found : integer;
begin
ResultList:=TStringList.Create;
Attr := faDirectory;
Found := FindFirst(Path, Attr, SearchRec);
while Found = 0 do //表示有子目录
begin
if (SearchRec.Attr=faDirectory) and (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
ResultList.Add(SearchRec.Name);
Found := FindNext(SearchRec);
end;
SysUtils.FindClose(SearchRec);
end;
begin
displaykind(nil,'c:\');//指定的文件夹
end;procedure TForm1.displaykind(parentnode:TTreeNode;sDirName:string);
var
i,hFindFile:integer;
ss,tfile:String;
FindFileData:WIN32_FIND_DATA;
begin
ChDir(sDirName);
hFindFile:=FindFirstFile('*.*',FindFileData);
Application.Postmessage;
if hFindFile<>INVALID_HANDLE_VALUE then
begin
repeat
tfile:=FindFileData.cFileName;
if (tfile='.') or (tfile='..') then Continue;
if FindFileData.dwFileAttributes=FILE_ATTRIBUTE_DIRECTORY then
begin//是一个子文件夹
listbox1.items.add(tfile);//显示到listbox中
if sDirName[Length(sDirName)]<>'\' then
displaykind(treenode,sDirName+'\'+tfile)
else
displaykind(treenode,sDirName+tfile);
end;
until FindNextFile(hFindFile,FindFileData)=false;
//FindClose(FindFileData);
end;
ChDir(sDirName);
end;
procedure Tform1.maketree;
var
sr:TsearchRec;
err:integer;
filepath:string;
begin
err:=findfirst('*.*',$37,sr);
while (err=0) do
begin
if sr.Name[1]<>'.' then
begin
if (sr.Attr and fadirectory)=0 then
begin
end;
if (sr.Attr and fadirectory)=16 then
begin
filepath:=expandfilename(sr.name);
memo1.lines.add(filepath);
chdir(sr.name);
maketree;
chdir('..');
end;
end;
err:=findnext(sr);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.clear;
chdir(edit1.Text);
maketree;
end;
var
DSearchRec:TSearchRec;
FindResult:ShortInt;
begin
try
FindResult:=FindFirst(path+'*.*',faDirectory,DSearchRec);
while FindResult=0 do
begin
if ((DSearchRec.Attr and faDirectory)=faDirectory) and (DSearchRec.Name<>'.')
and (DSearchRec.Name<>'..') then
ListBox1.Items.Add(DSearchRec.Name);
FindResult:=FindNext(DSearchRec);
end;
finally
FindClose(DSearchRec);
end;
end;调用
FindFiles(ExtractFilePath(ParamStr(0))+'Temp\');我这个最简便。