OpenCV获取文件夹下所有文件名

一、OpenCV中有实现遍历文件夹下所有文件的类Directory,它里面包括3个成员函数:(1)、GetListFiles:遍历指定文件夹下的所有文件,不包括指定文件夹内的文件夹;(2)、GetListFolders:遍历指定文件夹下的所有文件夹,不包括指定文件夹下的文件;(3)、GetListFilesR:遍历指定文件夹下的所有文件,包括指定文件夹内的文件夹。

若要使用Directory类,则需包含contrib.hpp头文件,此类的实现在contrib模块。

        string path1 = "E:\\代码转化\\synopsis\\坐标信息2"

       string exten1 = "*.txt";

       bool addPath1 = false; 
       vector<string> filenames = dir.GetListFiles(path1, exten1, addPath1);  

注:这样获得的 filenames中,只存储 文件夹 path1 下的文件名,不是全部路径;

      下面的代码可以获得 path1 下的文件的完整的路径    ;

      但是两者存储的顺序都很奇怪:例如path1下有12个txt文件,则输出后的顺序都是:1.txt,10.txt,11.txt,12.txt,2.txt,3.txt等等


二、 

void GetAllFileInfo(char* path, vector<char*> &filesPathVector)
{
    //find the first file
    _tfinddata_t c_file;
    intptr_t hFile;
   
char root[MAX_PATH];
strcpy(root,path);
strcat(root,"\\*.*");
   
   
    hFile=_tfindfirst(CA2CT(root),&c_file);
    if( hFile  == -1)
        return;
 
    //search all files recursively.
    do
    {
        if(_tcslen(c_file.name)==1&&c_file.name[0]==_T('.')
            ||_tcslen(c_file.name)==2&&c_file.name[0]==_T('.')&&c_file.name[1]==_T('.'))
            continue;
     


char* fullPath=new char[MAX_PATH];
   strcpy(fullPath,path);
   strcat(fullPath,"\\");


char* name=(char*)malloc(2*wcslen(c_file.name)+1);
wcstombs(name,c_file.name,2*wcslen(c_file.name)+1);
strcat(fullPath,name);


        if(c_file.attrib&_A_SUBDIR)
        {
            GetAllFileInfo(fullPath,filesPathVector);
        }
        else
        {
            //store full file path in vector.
//char pr=*fullPath;
            filesPathVector.push_back(fullPath);



            //print file info
        
        }
    }
    while( _tfindnext( hFile, &c_file ) == 0);
    //close search handle
    _findclose(hFile);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值