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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x

# V* m" f. |% q) P4 W9 \/ R$ n[mw_shl_code=cpp,true]#include <string>
5 P! s* `8 S4 }- k; Q: ?#include <io.h>
  V1 w! u. |0 X#include <vector>' h" {+ k; X# z8 `3 s
#include <iostream>
; Z% E; a7 j2 J7 [0 m6 R#include <fstream>) m- r7 o3 J+ i3 _( a. _. R
using namespace std;5 S3 u% J% K6 C0 F2 I3 @7 t4 u

/ Y- h& T' I5 J4 u5 r         0 l0 f) f& m: z1 s
/************************************************************************/
. n9 Z4 Y4 U' G% Z4 F1 |7 `+ k; }. q/*  获取文件夹下所有文件名
- t3 Q* F8 |0 t6 Y! u    输入:     * o- [* ]0 \6 U: v* f/ o' p
        path    :   文件夹路径3 `7 a$ T7 F4 _! P( S; w/ U
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
6 \3 I9 G: h9 E- _0 z                    文件名, exd = ".jt": v. n, m; U* ~
    输出:3 A0 }+ G" p% H5 B, {0 w
        files   :   获取的文件名列表 含有路径3 M. d7 n. s6 |
*/
0 k! X) S) ]+ U% P/************************************************************************/
1 `9 Z. g; K+ X5 P" C  _# J6 `% O4 @- x* K2 w- P8 H9 K1 k
void CONFIG_getFiles( string path, string exd, vector<string>& files )
3 d$ Q$ {2 U: L0 k+ \. E{0 g; Y- a; T2 m! E3 h) h! M# T
        //文件句柄
  j/ T! t) h2 Q    long   hFile   =   0;
2 P& f- }& @% _    //文件信息1 y' `! \/ n8 G! {1 x9 u
    struct _finddata_t fileinfo;2 O7 _1 i( E( T# Q$ u( ^8 _1 C
    string pathName, exdName;5 c. M4 N- Y" F; ?
3 X0 s# A6 d$ a
     string p;) d- {1 @& k4 V' }- ], d
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)( o1 t% @9 u! b8 g
    {
5 u, |+ @% V6 |( d9 S, m: W2 F        do
0 r8 n" L) }1 Y        {
" O3 ^. M$ E! ?) s; S8 V            //如果是文件夹中仍有文件夹,迭代之( L: H5 ~$ V0 o4 l, {7 }  m, R/ \5 O
            //如果不是,加入列表
. p. ~! i5 F" B0 ^            // 不推荐使用,硬要使用的话,需要修改else 里面的语句0 q5 h/ D! O- ?4 z1 G
           if((fileinfo.attrib &  _A_SUBDIR))- n& B9 |/ |2 A0 L0 P! I6 y
            {* F9 r8 S" p9 M6 }' ~0 u
                               
1 y5 A/ q3 U. T2 p! i/ j; e              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)( P+ D, L/ r( F1 d; N
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
! b+ Z1 ]' Q6 N: Z
2 f" _  K  D( ^1 K% t3 v$ C! z& \            }1 _- S5 e! V. y' v  N4 N7 [. l$ a3 e
            else - s5 U8 }+ y1 e6 T* @
            {" ?- k/ A$ U% }* ~) ]
                                if (strstr(fileinfo.name,exd.c_str()))
$ b8 Y3 u* R) ?# r                                {2 @1 ?3 q3 }" S; c( R6 `1 C$ V2 m: o
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句" h- S5 q) ]( N' m6 V, v+ `
                                }: y: }# r: A; ~( Q' {9 q0 d

6 ~. `0 K' _! W- v/ ^                    //如果使用, U+ ]. Z8 O6 z7 q  S
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
+ s* K2 A; S  Y3 H            }
% d4 k* Q) i# o* T        }while(_findnext(hFile, &fileinfo)  == 0);
( ]5 f4 l1 J3 I4 ?5 G: ]4 e/ D        _findclose(hFile);8 Z0 k  g+ x+ T7 d+ P
    }
( \( u) G+ V4 v: n" p, ?4 F}2 R/ v% Z; O4 r! @  v
[/mw_shl_code]6 B! H4 n7 J9 V2 f2 A. n
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了