C++獲取某一路徑下的文件個數(Windows和Linux環境)

Windows下:

WK_INT32 FileFront ::getFileNum(const std::string &path) {   //需要用到<io.h>頭文件
    struct _finddata_t fileinfo;
    WK_INT64 handle=_findfirst(path.c_str(),&fileinfo) ;
    WK_INT32 fileNum=0;
    if(handle==-1)
        return 0;
    while(!_findnext(handle,&fileinfo) )
        fileNum++;
    _findclose(handle);
    return fileNum;
}

Linux下:

WK_INT32 FileFront ::getFileNum(const std::string &path) {   //需要用到<dirent.h>頭文件
    WK_INT32 fileNum=0;
    DIR *pDir;
    struct dirent* ptr;
    if(!(pDir = opendir(path.c_str())))
        return fileNum;
    while((ptr=readdir(pDir))!=0){
        if(strcmp(ptr->d_name,".")!=0&&strcmp(ptr->d_name,"..")!=0 )
           fileNum++;
    }
    closedir(pDir);
    return fileNum;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章