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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
0 `0 D( o, T1 n9 `+ I( v
[mw_shl_code=cpp,true]#include <string>/ b/ o, p3 t7 H3 ?- M# j
#include <io.h>
8 @9 v; t4 y2 Y  G" Q! {# `. r#include <vector>  O4 M) ~- d8 w, @
#include <iostream>1 r) n7 t* C+ A/ }! y5 N
#include <fstream>* W2 Z% k" U$ E) I
using namespace std;0 p, ^, k/ P( R6 |4 m

- s6 f5 f  g! y- ]( J: Y2 K         % D0 q/ E+ X1 M# ^
/************************************************************************/5 y; Y$ z( v8 S1 C. i+ q
/*  获取文件夹下所有文件名
6 ^$ G$ r6 A; N5 A  o( u    输入:     
5 j9 k! B# e, S        path    :   文件夹路径/ l; Z( ~# }0 n3 v
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有6 U+ C5 Y" H! ~' @8 C& D3 c1 P
                    文件名, exd = ".jt"! F. j" d+ h( j; C
    输出:( @! |" V! H2 h  w
        files   :   获取的文件名列表 含有路径
5 B- Y; I2 U" e- q; X( _2 q*/! k! y3 @7 V' H2 Y0 X7 S
/************************************************************************/
7 `7 {. K! f8 j( a& x  U# N* t7 b
void CONFIG_getFiles( string path, string exd, vector<string>& files )6 s1 O  f  j* o5 n6 I
{
3 d$ P, t, t% R# F        //文件句柄; q3 p: X- v3 |# C3 K9 ]
    long   hFile   =   0;
* T! B4 U5 |7 k- J3 O/ u; r    //文件信息
( z7 [5 D8 u* J% f7 w    struct _finddata_t fileinfo;% W2 ?: }( @! F; i  [
    string pathName, exdName;6 J' H* p( Y, i1 D

( u* {5 F( Y$ C8 c: N( u6 ?     string p;6 |7 y4 l# m* J7 Y# u
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)$ V; {/ U5 z0 ?. u
    {4 j6 j8 g4 `- d3 y0 g' I" |
        do/ o  U1 P& m" V/ `2 w8 `
        {
: z) d: M& K. F  V            //如果是文件夹中仍有文件夹,迭代之6 y' [/ M+ K0 h; \6 ^+ }
            //如果不是,加入列表4 q$ T! p/ `$ S- V* i
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
6 f$ Q9 w  A! o0 b( y* q           if((fileinfo.attrib &  _A_SUBDIR)); S) G% e2 Q0 M& k
            {; k& G  w5 W# j+ W+ q: c
                               
6 N1 K; b1 n' N& R& _              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
3 S1 H7 M8 w! C, L  @                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
: n. @4 }5 p2 X; o+ a/ W+ }! g: H, [$ T! n: P% L$ L8 S9 u4 n2 w# F
            }
7 N3 K1 d2 z: e8 O' E" p            else
* D/ i1 r! E# c            {) `9 O$ Q9 g2 E; n
                                if (strstr(fileinfo.name,exd.c_str()))
4 q4 o% Q2 m* B6 s8 l) ?                                {
$ j" {% L9 o- O. }$ C! P/ H                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
; V/ A1 M7 N  c& z: d4 s                                }
) I9 U+ Y# q) m
2 L+ X9 N- e% x2 W1 D1 ]                    //如果使用$ _( n, {: [8 F- Z  j
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句8 z: Z. e+ U5 Q% \6 u
            }$ H6 [( ~! N6 C
        }while(_findnext(hFile, &fileinfo)  == 0);
1 S9 u; @# |, I0 o  H; ~, E! r        _findclose(hFile);% }1 ?" o. b# b
    }
: E9 a# m  B$ K1 v0 [) A9 d}
! g" u# y; ^1 o" D! }+ C[/mw_shl_code]3 m1 y5 e% d& ?7 B/ Y6 _7 x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了