PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
6 c; Y' ]- R2 i8 i1 s/ K
[mw_shl_code=cpp,true]#include <string>4 K% N6 V1 c  }( D6 B' E
#include <io.h>6 j$ ]' f" f* L. I8 u/ [) W) w7 a, e
#include <vector>
) S, v! d) P" W9 [#include <iostream>
  Q$ D$ @6 [3 T# G#include <fstream>
6 h0 a' E2 }/ b$ ?6 f/ F' G* m9 Yusing namespace std;5 r7 e* y$ }# z8 h: Y& H5 j* E: ]- \
* K3 V" w& \7 O3 \& S. h) g" V4 `+ a
         
5 v& O3 B# a  L/************************************************************************/, v+ R( N3 f* `( G  @$ N& b
/*  获取文件夹下所有文件名! l/ I5 E0 s- H; \; i' Y3 v, G
    输入:     
: w& U* A; p* f+ i        path    :   文件夹路径0 q- e* S  g& t$ a6 N3 L* h/ c4 V
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有# A1 ^  U+ ~$ ?8 ~% [5 W
                    文件名, exd = ".jt"' [1 X4 N$ w9 {8 V
    输出:
& I& \# T/ Z, k* h        files   :   获取的文件名列表 含有路径
* X1 p9 c0 y! ^& `+ j  O7 L*/
/ U/ x6 S! c4 ^6 N' T( e/************************************************************************/. w5 Q  N9 R$ K2 k# H

1 z2 ]1 Q4 o5 ]: K& Qvoid CONFIG_getFiles( string path, string exd, vector<string>& files )) J) x/ h9 b" K/ o
{+ M1 _8 F4 w( O+ D9 s4 A
        //文件句柄
: z  v) e. B. @3 _2 m8 W8 F    long   hFile   =   0;
6 \7 [& H( K0 ]' t    //文件信息; R) z: E9 K8 r1 G$ [0 S% c
    struct _finddata_t fileinfo;" |2 M: ?# N4 y
    string pathName, exdName;6 m  a$ E9 o7 L
( |& x/ E8 w! p  \4 P
     string p;5 ~' h- U" g8 w* N% @+ j) H, l
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
- q! O8 b% R0 l4 o! _6 y; w    {
1 D0 p. ~! G% N2 A/ A* ~* ]8 d        do
& Y+ n- c7 O! c$ b        {
, b/ A4 z# K  ?5 q            //如果是文件夹中仍有文件夹,迭代之. }5 l5 z. q8 g# o
            //如果不是,加入列表$ @* u$ I& I' U) }% a# h
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句% m/ r! d* ~; [* V* n
           if((fileinfo.attrib &  _A_SUBDIR))
, @( ]+ g9 o2 o' U& z' |            {* l- _* j9 ]2 {2 h
                                . F- a; t+ i1 T0 g2 I+ B2 I- ^% V
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)/ [3 F, e2 i9 C$ F; P% b8 I
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
3 }6 v$ l$ ?' b3 S8 O$ A
% ?+ `: Q0 x& L" K5 w            }$ z7 D$ m, c5 [9 Z  Y$ }3 g0 |
            else ; \0 L, y. p/ A: f
            {
3 M" D/ k# h) H                                if (strstr(fileinfo.name,exd.c_str()))7 L6 J, K/ s( o: [4 l0 U+ Q7 o
                                {4 k& ?- ~0 r' j* e, G+ W
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
+ A/ B  s+ Q# V                                }: p0 T/ X' \: i  r8 [" j# i
# y3 V2 u  J9 W
                    //如果使用  A5 C" k" V% P- v+ \6 r2 F
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
* y& y+ o, p2 I& J- B            }8 T; @- L6 _# D: J
        }while(_findnext(hFile, &fileinfo)  == 0);
* R) [  a* u, j, L0 j; _4 Z        _findclose(hFile);
" R! T6 U; n5 {1 ~9 H3 C    }
7 X* ~2 F' F  W0 ^5 M- @9 E}
# o' d) W+ }) R" W3 R4 O[/mw_shl_code]
4 v) ?6 v! `8 ]+ C: o4 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了