C语言readdir()函数:读取目录函数

头文件:#include <sys/types.h>   

    #include <dirent.h>

定义函数:struct dirent * readdir(DIR * dir);
返回值:成功则返回下个目录进入点. 有错误发生或读取到目录文件尾则返回NULL.
附加说明:EBADF 参数dir 为无效的目录流。
函数说明:readdir()返回参数dir 目录流的下个目录进入点。结构dirent 定义如下:

struct dirent
{
    ino_t d_ino; //d_ino 此目录进入点的inode
    ff_t d_off; //d_off 目录文件开头至此目录进入点的位移
    signed short int d_reclen; //d_reclen _name 的长度, 不包含NULL 字符
    unsigned char d_type; //d_type d_name 所指的文件类型 d_name 文件名
    har d_name[256];
};

例:

/*=================hikeen add start================*/     
HI_S32 Hi_EX_Cus_Factory::getininumber(int bType)
{
    LOGE("[%s] called", __FUNCTION__);
      DIR* Filedir;
      struct dirent* ep;
      std::string NameStr="";
      std::string IniString="";
      int IniNum = 0;
      Filedir = opendir("/atv/ini");
      if (Filedir != NULL)
       {
           switch(bType)
           {
               case 0:            //programlist
                IniString = "programlist";
                break;
               case 1:            //DATABASE_DTMB
                IniString = "DATABASE_DTMB";
                break;
               case 2:            //DATABASE_C
                IniString = "DATABASE_C";
                break;
               case 3:            //DATABASE_S
                IniString = "DATABASE_S";
                break;
               case 4:            //DATABASE_T
                IniString = "DATABASE_T";
                break;
           }    
        while (ep = readdir(Filedir))
        {
            NameStr = ep->d_name;
            if(NameStr.find(IniString) != std::string::npos)
                IniNum = IniNum + 1;        
        }    
        (void) closedir(Filedir);
      }else{
        
            LOGI("=====dir open error!!!!============Filedir = NULL");
            }    
     return IniNum;
}
/*=================hikeen add end================*/     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值