首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

代码有点不明白,该如何处理

2012-06-14 
代码有点不明白从网上找到这段查找目录下文件的代码,有两个地方不明白,C/C++ codevoid TForm1::Direct(con

代码有点不明白
从网上找到这段查找目录下文件的代码,有两个地方不明白,

C/C++ code
void TForm1::Direct(const String &path){   int k = 0;   k |= faAnyFile;   TSearchRec r;   if( Sysutils::DirectoryExists(path))   { //判断目录是否已经存在     if(FindFirst(path+"\\*.*",k,r) == 0)     {       while(FindNext(r)==0)       {         if(r.Name=="."||r.Name==".."||r.Name=="...")          {             mmo1->Lines->Add(path);//得到文件夹             continue;          }          int k1 = 0;           k1 |= faAnyFile;           TSearchRec r1; //递归            if(r1.Name=="."||r1.Name==".."||r1.Name=="...")             continue;           String path1 = path+"\\"+r.Name;         if(FindFirst(path+"\\"+r.Name+"\\*.*",k1,r1) == 0)           Direct(path1);         mmo1->Lines->Add(path+"\\"+r.Name );//得到文件名       }         FindClose(r);     }   }  }

一个是为什么要这样赋值 : k |= faAnyFile; k本来就已经是0了;
二是 if(r.Name=="."||r.Name==".."||r.Name=="...") 这个“.”代表的是什么呢?

[解决办法]
k |= faAnyFile是习惯问题, 如果再有一个类型, 就必须这么写了
"."和".."是代表当前和上级目录, 这个不是真正目录, 略过. 
"..."目录没有
[解决办法]
我觉得也是习惯问题
[解决办法]
k |= faAnyFile 是给比特变量赋值的写法,这样写或等,可以最大可能的保留原k的位值。
[解决办法]
"...",这是一个不存在或是不正确的目录名

热点排行