查看: 1756|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

积分
60
发表于 2020-3-4 21:04:15 | 显示全部楼层 |阅读模式

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

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

×
* F9 {; J$ v" d
[mw_shl_code=cpp,true]#include <string>6 b3 Q3 w. d$ q5 q* s. A+ G- R8 \+ T+ Y
#include <io.h>9 ^% E! b& {  X- b' B! U
#include <vector>
% G" p# C. B) b1 v#include <iostream>
( D& [* G% P. Q#include <fstream>
4 ^3 {: U* `. N% J# c9 G# Q9 W6 Musing namespace std;
0 ]8 g8 X& \6 o6 T% G7 u# m; S9 A$ C/ s) C0 ]
         7 X+ q  t" h4 K! s. b$ s! Z
/************************************************************************/
7 A8 N# u( p" `/ Z. K) w2 v4 L/*  获取文件夹下所有文件名
  _8 M" `; }5 I, y1 j; V: B" ]    输入:     
5 A3 J7 G3 d9 z        path    :   文件夹路径
0 c$ n, }" W; m( w        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
' m1 H- v* K. s3 M% N% @% d                    文件名, exd = ".jt"0 f" Y+ r" l/ T! r; i5 y" R- v
    输出:
  m* D5 {/ @/ Y1 c& l5 B        files   :   获取的文件名列表 含有路径
5 J5 J2 w; T. @4 ]" v) N*/5 _& o7 I+ c- |9 f$ K0 m$ f- b
/************************************************************************/
$ w3 E, W# O8 M- e+ _& C4 `& P2 g( k' T' v9 o
void CONFIG_getFiles( string path, string exd, vector<string>& files )
; _, H+ `+ B+ d' O' ~5 @$ Y1 `{6 d4 q  X8 e7 M( _, ^- U
        //文件句柄9 ?8 R% \" b# ~( n* K+ N5 ~
    long   hFile   =   0;; C& j+ t. M6 {
    //文件信息, @& G$ S8 }: o$ I2 @4 ]
    struct _finddata_t fileinfo;7 p7 {$ i, J. N
    string pathName, exdName;* m" S; [5 b& h  k- Z
: E3 u; n# l3 B
     string p;
) g+ ?( H3 @2 ]. L6 ]! d        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)) I$ t5 x$ a8 I6 Q' ~5 ?/ ~
    {, j3 D) Q( l! l/ g
        do2 L$ H6 N; v7 D* J4 `' E( ^
        {
$ c9 E; C" C: t2 z1 Z            //如果是文件夹中仍有文件夹,迭代之
" h5 b$ D# L9 w; `" k! \1 o: }' c0 b            //如果不是,加入列表
1 j, M  S  C. p' j* U, @8 }            // 不推荐使用,硬要使用的话,需要修改else 里面的语句) ?7 f" }( ^. K9 G: `, {! ^
           if((fileinfo.attrib &  _A_SUBDIR))
4 \! {4 i- i  C; Z( f            {
" D( V. {* i& y2 t3 c* H: N                               
0 r4 g3 g8 o6 t) d2 O              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)8 y( u3 ^9 f( R7 y
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );4 s# J! O& l9 @$ P* ^& J

' X* ?5 I$ Q$ h) y, F6 u            }
. K$ N* Q: n9 n% N& c/ Q+ c' _7 m4 i            else 2 H# @& {' r7 D: K) n3 g8 O- _8 F
            {. I& R8 }) |9 X
                                if (strstr(fileinfo.name,exd.c_str()))1 z% H8 t: ^4 \. y8 _" S
                                {
4 T/ p% @" w& R9 V0 i  B                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
' F/ Q" R/ y; ~& R. S9 a                                }
5 x, t, l+ `5 r; m5 R9 u; r! e( m: y& h; ^2 U6 i& _6 @
                    //如果使用, ?/ c; w  K, X3 E; w8 W5 D9 o4 D& [5 c
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
+ {4 r* M; s  d/ y4 O            }/ [7 E" q" e( c# f0 z$ I+ C0 K
        }while(_findnext(hFile, &fileinfo)  == 0);( s* L* R6 h" H; C* W/ t9 l
        _findclose(hFile);
& |; x! Z- d0 @: O9 `' k4 m1 M    }
1 O9 v) U9 R2 _, j( `  w}
& b( A0 n7 W' z" L" d[/mw_shl_code]$ v) T0 t7 I" Y, n( s' J- r0 m
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部