PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
9 `/ s) `3 T5 k& g9 r7 L) L# F
[mw_shl_code=cpp,true]#include <string>& F) U" H" k5 z' B. t) R4 B6 T
#include <io.h>
4 r% Q! M! A& Z8 r#include <vector>& m% M; N. l! @5 ~9 i
#include <iostream>
0 {6 Q2 [" e; M8 }#include <fstream>
; ?  h6 P$ d8 q' v9 o/ Rusing namespace std;
+ M- }+ B5 ^6 g: o- a8 e' J7 b, V5 e( f
         * l: `' U; r3 v" G$ G& i
/************************************************************************/
' i+ f  W( Y% ]) f& F  G" \/*  获取文件夹下所有文件名, j2 F! Z$ D+ p7 _- w4 P
    输入:     
9 ~" i& P: N; R' r$ e; ?" t: D        path    :   文件夹路径' \7 J& J: G0 X
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有3 S) \% I9 K; N7 s* x( P3 B
                    文件名, exd = ".jt"2 A; Z1 r* v* A# H& _) `
    输出:9 W4 z1 e* c$ f
        files   :   获取的文件名列表 含有路径6 O: P" C( p" E% _0 K  \
*/4 s  ~% t( C! {: o) e9 K. V2 e0 Z
/************************************************************************/
0 a6 p" i# ?; e' R* I. o4 w) A, p+ d: y- k9 y. G% x4 a
void CONFIG_getFiles( string path, string exd, vector<string>& files )6 t6 E3 p9 H  l
{  b1 u* @" i; z7 N" L8 W
        //文件句柄1 ]3 V9 w/ q, [4 B! D6 w+ j3 a+ n
    long   hFile   =   0;
, `* }% G$ k4 R8 t1 x1 }6 a1 Q    //文件信息2 J# A! e" R% D4 ]: F$ h3 _/ U; m
    struct _finddata_t fileinfo;
3 g; y' D7 p. Y% s) B    string pathName, exdName;
' u. k* ?; c- T0 D
8 V( L7 q  a! R" x9 ?8 A* L     string p;' f1 c0 [9 Z0 q9 N
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
& W7 |- {7 N  m. n" A" d0 h8 w# r    {. K. e* i+ i4 _7 m$ z$ s" r- X9 ^
        do
0 T4 w3 ^( @& }* T3 s7 W, @& D        {: G) s3 E0 w1 c3 N, `8 D* T
            //如果是文件夹中仍有文件夹,迭代之
) q! m2 x5 Z# }0 F3 @            //如果不是,加入列表
/ N: d4 _* l/ R) _/ G) V  N# z) a            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
8 Y9 g9 q  P2 z7 X( J5 \           if((fileinfo.attrib &  _A_SUBDIR))0 b% @) g( N9 ~$ e9 u$ P% v; b
            {) r8 f. T7 J9 N
                               
  t3 \6 t! |$ K$ C              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
1 ?) C( f) ]& j% ^8 J1 i                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
0 s, u. Y6 p" b7 i5 w5 k: W3 R# }4 I1 l
            }
8 W1 P& C  |- ~9 }8 |            else 3 J) p* u  m/ y
            {4 ]' g/ J  w+ m5 `& N8 e  j
                                if (strstr(fileinfo.name,exd.c_str()))3 F& O( t' |$ {7 l0 n- _/ ~
                                {8 P3 M- `: \' z" o7 t: c* q$ I
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句$ T6 k% y' w4 H8 ?
                                }
& W. C- f: L7 P% H0 ?! d0 ?
) m4 |3 }8 D1 @, ]' g* H2 B+ b                    //如果使用1 u( Z3 p* u6 L$ O5 w
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
5 ~! P9 ]3 o5 G8 R7 }            }
5 W$ M- a7 G; r: I" \6 `: [3 k        }while(_findnext(hFile, &fileinfo)  == 0);
& {4 O- @; C/ K        _findclose(hFile);
. P5 }4 f3 R* V    }
- m. z; U7 D/ f. w/ O& u5 U}9 a* c, M( R& Q3 W
[/mw_shl_code]
- s' n5 Y/ z4 }. J7 a7 J3 s
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了