如何用IShellFolder等方法,遍历一个指定目录下的指定类型的文件。
最好能以树控件的形式来显示出来。
最好能以树控件的形式来显示出来。
解决方案 »
- delphi中的日文问题
- IdTCPServer CPU占用率高,只要客户端连接上,占用率就90%左右,断开马上降下来, 用什么办法解决?
- 严重声明,本人和ghyghost (爱国人士) 绝对非马甲关系。本人不会象他那么吝啬,放200分,他才放0分。
- 如何用Filter同时过滤两列?
- OnExit有问题?
- 一个简单基本的问题求教高手,急在线等
- 关于ActionToolBar的下拉箭头
- 关于Help and Manual做帮助文件的问题
- 求助:请 li_zhifu 大哥 和各位大哥再帮我看看下面几个问题,谢谢!
- 如何在DELPHI中调用C++ BUILDER写的DLL文件?
- 有18岁到28岁的女程序员吗?想找一个做女朋友!共同写人生的程序!!
- 如何将一个程序的任务栏按钮隐藏掉?????
现在身必具疲,不想写代码了!
假如我要遍历C:\WINNT目录下面所有的TXT文件。并生成树结构。所有的TXT文件就是树结构的叶,叶的上一层就是包括它的目录(依此循环)。 如果某一目录没有TXT文件,在生成的树结构中就不用包含该目录。
这应该是要用到回溯的思想来做。 不知那位大哥有类似的源代码,就请给我一份。这样我就不用自已写的(自已写还是比较麻烦的)。
var
searchrec:TSearchRec;
ext:string;
begin
if path[length(path)]<>'\' then
path := path + '\';
if FindFirst(path+'*.*', faAnyFile, SearchRec)<>0 then exit;
if (searchrec.Attr and faDirectory) <> 0 then
begin
if (searchrec.name<>'.') and (searchrec.name<>'..') then
searchpath(path+searchrec.name,extname,fileresult);
end
else
begin
ext := lowercase(extractfileext(searchrec.Name));
if (ext=extname) then
begin
fileresult.add(Copy(searchrec.Name,1,Length(searchrec.Name)-Length(extname)));
end;
end;
while findnext(searchrec)=0 do
begin
if (searchrec.Attr and faDirectory) <> 0 then
begin
if (searchrec.name<>'.') and (searchrec.name<>'..') then
searchpath(path+searchrec.name,extname,fileresult);
end
else
begin
ext := lowercase(extractfileext(searchrec.Name));
if (ext=extname) then
begin
fileresult.add(Copy(searchrec.Name,1,Length(searchrec.Name)-Length(extname)));
end;
end;
end;
findclose(searchrec);
end;