不知道大家有没有发现这一个问题?

heimi 2004-08-21 12:52:05
void FindDocFile(const AnsiString subpath, TListView *ListView1);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
ListView1->Clear();
FindBmpFile("c:\\", ListView1);
ListView1->Refresh();
}
//---------------------------------------------------------------------------

void FindDocFile(const AnsiString subpath, TListView *ListView1)
{
TListItem *pItem; // 用于添加满足条件的项到 ListView1
TSearchRec sr;
AnsiString path=subpath;
AnsiString fullPath=path+"*.*";
if(FindFirst(fullPath,faAnyFile,sr)==0)//虽然我这里用的参数是faAnyFile,但是
//没有和Windows自带的搜索出来的一样多。
//比如说有的存档文件它不搜索?真的,大家不信
//的话可以看看!不知道大家有没有解决这个问题!
{
AnsiString ls_filename=path+sr.Name;
if(sr.Attr!=faDirectory)
{
if (ExtractFileExt(sr.Name).LowerCase()==".bmp")
{
pItem=ListView1->Items->Add();
pItem->Caption=ls_filename;
}
}
else if(AnsiString(sr.Name)!="." && AnsiString(sr.Name)!="..")
{
FindDocFile(ls_filename + "\\", ListView1);
}
}
while(FindNext(sr)==0)
{
AnsiString ls_filename=path+sr.Name;
if(sr.Attr!=faDirectory)
{
if (ExtractFileExt(sr.Name).LowerCase()==".bmp")
{
pItem=ListView1->Items->Add();
pItem->Caption=ls_filename;
}
}
else if(AnsiString(sr.Name)!="." && AnsiString(sr.Name)!="..")
{
FindDocFile(ls_filename + "\\", ListView1);
}
}
FindClose(sr);
}
//---------------------------------------------------------------------------
...全文
151 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
commars 2004-08-29
  • 打赏
  • 举报
回复
UP!
qibo999 2004-08-29
  • 打赏
  • 举报
回复
改一句试试:
if(FindFirst(fullPath,faAnyFile,sr)==0)//虽然我这里用的参数是faAnyFile,但是

---->

if(FindFirst(fullPath,0x00000027,sr)==0)
heimi 2004-08-21
  • 打赏
  • 举报
回复
不好意思 FindDocFile应该是 FindBMPFile!
geochway 2004-08-21
  • 打赏
  • 举报
回复
下面是各属性位的定义:

Constant Value Description

faReadOnly 0x01 Read-only files
faHidden 0x02 Hidden files
faSysFile 0x04 System files
faVolumeID 0x08 Volume ID files
faDirectory 0x010 Directory files
faArchive 0x020 Archive files
faAnyFile 0x03F Any file
geochway 2004-08-21
  • 打赏
  • 举报
回复
哥们儿,你的程序有问题,判断是不是目录应该这样表

if((sr.Attr&faDirectory)!=0)
{ //是目录
}

因为在目录结构中,是用一个位来表示属性的.
yingshis 2004-08-21
  • 打赏
  • 举报
回复
关注
CB1013 2004-08-21
  • 打赏
  • 举报
回复
试了一下,还真是这样,先做下来听听
zly1980 2004-08-21
  • 打赏
  • 举报
回复
UP
Persistent8813 2004-08-21
  • 打赏
  • 举报
回复
早就知道XP的探索有问题,是不是系统的原因.你的代码俺没细看
cchao 2004-08-21
  • 打赏
  • 举报
回复
学习

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧