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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
! Y2 t# E$ [* g4 O) f7 w
[mw_shl_code=cpp,true]#include <string>
. s4 M, h( K# z7 }#include <io.h>, O7 x3 E4 L% G8 |) X
#include <vector>( j2 d/ `2 d6 K6 W, H
#include <iostream>) J$ B3 S8 l/ s( i# [3 o+ k2 a
#include <fstream>
" g; J! b6 W) W; t! vusing namespace std;' @  Z# m  E7 R% C% ]
. _2 o" g1 D/ j
         
$ f, U1 E5 g/ ~/************************************************************************/& W" s9 R/ H3 ]7 ?9 D$ K
/*  获取文件夹下所有文件名4 y+ P, |- X3 K
    输入:     
! c. r( m. U/ Z! _* A* C        path    :   文件夹路径
* H% K+ N6 T3 C- ?" V/ L$ i        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
) O( ^  |) m& [6 D5 ^9 {5 |                    文件名, exd = ".jt"" a% K& E; y5 g
    输出:
$ u) B& e; v' k1 r        files   :   获取的文件名列表 含有路径: N1 M: H2 a- Q. d
*/5 l) ^3 R8 M+ J( q5 D- R" T% `
/************************************************************************/
" O+ |5 K( A% Q) d8 L2 {# J) ]: ^' w9 m7 p
void CONFIG_getFiles( string path, string exd, vector<string>& files )3 h) p7 e, S2 c( v
{: P0 A; m, ], f( E7 r' ^* e; H
        //文件句柄3 s* `6 T( S9 f/ K
    long   hFile   =   0;( g% ?7 k4 V  E1 |+ P& B
    //文件信息
, `( L( E0 |5 ?+ C    struct _finddata_t fileinfo;
2 l4 m  u; c" z) Q3 Z+ ?    string pathName, exdName;: ]8 e* e+ O" ?  P" q. V6 G7 D( ]
& y0 A# K; [+ A
     string p;
, ?2 d  ^& g/ ~- K2 p; |        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
+ K8 j: p3 V  k% t0 \8 K    {4 ]7 g3 k4 L6 K; G1 h, b
        do
- p& x2 A* t: d. Z5 _8 s5 }        {! ~8 d+ \9 @! {- \$ n2 M+ ]% l9 s: b* @
            //如果是文件夹中仍有文件夹,迭代之
2 w6 X' B* M4 k" P3 g            //如果不是,加入列表
$ k# n9 g# ?% h# S* q( `0 K            // 不推荐使用,硬要使用的话,需要修改else 里面的语句! G3 i6 C; j9 V  q! i& y5 q/ B, `# B
           if((fileinfo.attrib &  _A_SUBDIR))) i% R+ U7 J' E( X  z7 p( u
            {% l* A  @0 e& F: g$ n+ V
                               
9 J  a' w  H0 l              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
! L; F# \2 A6 G. O3 }                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
: V7 {: j8 m4 [% Z: g: J  @- [2 e* K5 n1 H. k
            }+ q, y  C. P7 E
            else 2 b1 ^9 z3 G6 a3 ^7 D( Z
            {
/ Q  K( x( j3 H                                if (strstr(fileinfo.name,exd.c_str()))
# S% A7 }. J' {! k5 [. z                                {! C& {0 `, c) W4 Y( [) [
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句# B: l1 M2 w. v; I8 y3 d7 s
                                }
$ c8 M2 Y2 ]7 }  M! b/ s7 ~+ s4 l8 {* {9 @1 z2 N% m5 i
                    //如果使用& v, ?- g1 T' u: G( X9 [, e
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
( r- T; \0 m6 R2 q            }
# o& S$ j; n2 R7 ^        }while(_findnext(hFile, &fileinfo)  == 0);
& w0 B) A5 f2 x) ^        _findclose(hFile);
& m  M: g0 i8 |( ~    }
" z- Z1 r& n  m: M% Z  G}/ M8 f$ V' p+ {7 y$ Q! o
[/mw_shl_code]: f1 x, t/ f" y2 `0 O7 T- u% [4 J
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了