PLM之家PLMHome-工业软件践行者

[二次开发源码] 获取一个文件夹下所有指定类型的文件名

[复制链接]

2020-3-4 21:04:15 1489 0

admin 发表于 2020-3-4 21:04:15 |阅读模式

admin 楼主

2020-3-4 21:04:15

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
& k5 l/ j. g& E1 T) |/ ]% s
[mw_shl_code=cpp,true]#include <string>
* m; s. U. k6 L#include <io.h>1 H9 M. w( c  @" i- d2 A$ ^% `
#include <vector>
; \7 a. G, N+ d#include <iostream>
: r" H) ?" `& k) t6 _#include <fstream>) o/ h) {7 U% U) }& n& {
using namespace std;" X: q* v- Q% f1 c% v, c

4 V+ p- O1 w. N/ f$ _' }9 v         
. O+ _4 m! o) X7 W0 ?/************************************************************************/
6 r! s2 f9 ?# G5 M3 N/*  获取文件夹下所有文件名
/ B& u0 I+ W- m4 @7 D    输入:     $ E8 u1 @$ c' L0 B0 [3 |+ j
        path    :   文件夹路径
  a; O) l+ w. l" y  T$ \2 G        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
9 ]  ^0 y  g7 l, G# u) O                    文件名, exd = ".jt"5 ?8 n7 N+ y2 ?! a3 F' X1 B
    输出:9 w- z, O  A& V) K7 ^9 O
        files   :   获取的文件名列表 含有路径
/ B2 [% U2 f# t" I, W*/
* n/ T% i, H" x+ s& V/ X/************************************************************************/
3 ~$ d  K7 N/ E2 w: [2 A; C
8 w* g5 |3 S$ G  Nvoid CONFIG_getFiles( string path, string exd, vector<string>& files )
  w1 F2 ^- l* ?# f: v% W9 J{0 Y# g+ U# G3 K: Q1 O* `
        //文件句柄. ?: O+ N$ ^5 q- B- c! y
    long   hFile   =   0;
& d1 e+ ]/ i9 v7 d+ @: ~) Q    //文件信息/ U& I: \. b" w( |* K  {1 V! f
    struct _finddata_t fileinfo;
! [- _7 l) Y1 ]4 W7 |8 r    string pathName, exdName;. s9 p3 h5 G- {! C- L
& u! p" n  q- W+ A! X7 N
     string p;
8 D% b0 p0 L) c. Y        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
% D" b) \8 b7 ^    {) l' W4 X2 Q7 H$ S7 b1 l
        do
2 d% n" `6 M* H0 F* _        {" r7 ~( O6 x6 x+ F* d/ p
            //如果是文件夹中仍有文件夹,迭代之
6 [! e% S0 S/ a' ~8 @! _            //如果不是,加入列表; ^: u4 F9 D# D: @
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句# ^: H9 x8 W2 Y/ x# E
           if((fileinfo.attrib &  _A_SUBDIR))
1 D8 l$ i1 `7 T+ A: _2 O            {
( u1 k1 `/ X( T. b8 E! v; @; l8 [' @                               
, v  K7 e! r3 v4 x- ]8 v              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)3 z0 O- ^) z% ?% t
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
/ ^: [* q  m' ]( C. k
5 V% F/ N) ]7 ~% v5 d8 I            }
( h6 \5 {3 K" [$ D( _& G  `            else ' e8 k+ e- H, S! a/ S* @/ D
            {
) R0 N3 \" q1 x6 ]: o                                if (strstr(fileinfo.name,exd.c_str()))4 O) V* w( e1 t
                                {
$ l  w& r7 {4 U2 H: j' v, G                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句- u8 q3 w3 l, a1 {, C: \
                                }5 b3 ~, C& i) p- ]2 l! G
. \0 a3 V. x0 Q( R( M5 C/ o" L
                    //如果使用, I3 \5 B- Q0 ?
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
# E' f- X9 a* z6 V& ]            }
- e4 P5 Q/ Z0 H6 _( O2 `        }while(_findnext(hFile, &fileinfo)  == 0);
# a4 B2 _* b3 X/ b" v        _findclose(hFile);! a# f  O  g. E( V* j+ U4 [) I9 K
    }
/ F4 \; z" e+ C7 k+ j' o}
8 n8 p8 |  P/ W8 G+ H[/mw_shl_code]* M! G  A! ?8 L) m2 U5 A  h
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了