又是读了多个文件没关闭,搞死了一晚

上次matlab也是这样。dir读写文件没关闭,循环读。调了半天。

这次又来!原来写了44行,应改写在42行。再一次强调,看代码要十分耐心。

 1 vector< vector<string> > readFileList::GetFileNameFromVideoDir()
 2 {
 3     vector<string> vFileDirList_out;    
 4     vector< vector<string> > vFileDirList_all;
 5     DIR *dir;
 6     struct dirent *ptr;
 7     //get outer fold names
 8     dir = opendir(root_path.c_str());
 9   LOG(INFO)<<"wanggcong!!!******************************";
10     while( (ptr = readdir(dir)) != NULL)
11     {
12         string filename = string(ptr->d_name);
13         if (filename[0] == '.'){
14             continue;
15         }
16         string path = root_path + string("/") + filename;
17         vFileDirList_out.push_back(path);
18     }
19     closedir(dir);
20     //according to outer folds names, we can get the videos from 
21     //every fold one by one
22   LOG(INFO)<<"wanggcong!!!*******************************";
23     for (int i=0; i < vFileDirList_out.size(); ++i)
24     {
25         vector<string> vFileDirList_in;
26         dir = opendir(vFileDirList_out[i].c_str());
27 
28         LOG(INFO)<<"wanggcong:name:"<<vFileDirList_out[i];
29         LOG(INFO)<<"wanggcong:size:"<<vFileDirList_out.size();
30           LOG(INFO)<<"wanggcong:dir:"<<dir;
31   LOG(INFO)<<"wanggcong:ptr:"<<ptr;
32         while( (ptr = readdir(dir)) != NULL)
33         {
34             string filename = string(ptr->d_name);
35             if (filename[0] == '.'){
36                 continue;
37             }
38             string path = vFileDirList_out[i] + string("/") + filename;
39             vFileDirList_in.push_back(path);
40         }
41         vFileDirList_all.push_back(vFileDirList_in);
42         closedir(dir);
43     }
44    //  closedir(dir); 
45   LOG(INFO)<<"wanggcong!!!*******************************";
46   
47     return vFileDirList_all;
48 }

 

转载于:https://www.cnblogs.com/Wanggcong/p/5366990.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值