procedure GetAllFiles(MainPath: String);
var
nI: Integer;
SearchRec: TSearchRec;
sFileName: String;
sMainpath: String;
begin if MainPath[Length(MainPath)]='\' then sMainpath:=MainPath
else sMainpath:=MainPath+'\';
FindFirst(sMainPath+'*.*',faAnyFile,SearchRec);
if SearchRec.Name<>'' then
begin
sFileName:=UpperCase(SearchRec.Name);
if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then//你可以换成其他的如'.mp3'
AllFiles.Add(sMainPath+SearchRec.Name);
if (SearchRec.Attr and faDirectory)=1 then
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
GetAllFiles(sMainPath+SearchRec.Name);
while (FindNext(SearchRec)=0) do
begin
sFileName:=UpperCase(SearchRec.Name);
if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then
listbox1.Add(sMainPath+SearchRec.Name);
if (SearchRec.Attr and faDirectory)=faDirectory then
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
GetAllFiles(sMainPath+SearchRec.Name);
end;
end;end;
var
nI: Integer;
SearchRec: TSearchRec;
sFileName: String;
sMainpath: String;
begin if MainPath[Length(MainPath)]='\' then sMainpath:=MainPath
else sMainpath:=MainPath+'\';
FindFirst(sMainPath+'*.*',faAnyFile,SearchRec);
if SearchRec.Name<>'' then
begin
sFileName:=UpperCase(SearchRec.Name);
if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then//你可以换成其他的如'.mp3'
AllFiles.Add(sMainPath+SearchRec.Name);
if (SearchRec.Attr and faDirectory)=1 then
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
GetAllFiles(sMainPath+SearchRec.Name);
while (FindNext(SearchRec)=0) do
begin
sFileName:=UpperCase(SearchRec.Name);
if (Pos('.ZIP',sFileName)=Length(sFileName)-3) then
listbox1.Add(sMainPath+SearchRec.Name);
if (SearchRec.Attr and faDirectory)=faDirectory then
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
GetAllFiles(sMainPath+SearchRec.Name);
end;
end;end;
解决方案 »
- 高分请教: ''Thread Creation Error:存储空间不足,无法处理此命令''这是什么问题呢?
- 如何执行父窗体中某个对象的事件
- 紧急求助高手:delphi程序如何通过崩溃地址和map文件找到源程序中的崩溃行号
- 请问各位:调用CMD后如何在delphi程序中关闭呢?(分用完了,不好意思,再补上)
- 利用'+'不能连接string类型和PAnsiChar类型,要生成一个PAnsiChar字符串应该用什么样的操作呢
- (急)如何在一个exe中执行另外一个exe?
- 那里有交通系统方面的资料。
- 一个小问题,怎样表示一个单引号的字符?(在线等待)
- TreeView控件中如何知道TreeNode被点击,是否用到消息机制
- 我想自己做一个ODBC按装成序,该打包那写文件,要不要写住册表??最新的ODBC 版本是多少??
- 那位仁兄有详细的api,给我一份
- 分布式应用,delphi和java那个更有前途?我认为是java!对java中间件的开发,那位大虾能发表一下看法。
SearchRec.time就可以获得
f: TSearchRec;
result:boolean;
begin
result := findfirst(path+'*.mp3',faAnyFile,f) = 0;
if Result then
begin
listbox1.Items.Add(f.name);
repeat
result := findnext(f) = 0;
if result then listbox1.Items.Add(f.name);
else findclose(f);
until (not result);
end;
end;
要用递归搜索
搜索一下以来的帖子,有很多这类问题的
你可把程序改一下,写成递归调用,就可连子目录的信息都得到。