PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

/ |  O, L0 l; ^, C) q[mw_shl_code=cpp,true]#include <string>
; W+ M0 K2 l. `& b* G6 {#include <io.h>
% x$ q) c2 O! `#include <vector># P; q% r9 o( o( q( H( M1 H2 R
#include <iostream>
+ o# {, N# O1 {4 o* E$ l/ V- }4 n#include <fstream>
# R2 u! }) z0 V) @; ^" P: Iusing namespace std;
* p* n! C; X& b
! n9 z- P1 J  ^7 g  g, d  E         
9 F; v! z: c/ L: G/************************************************************************/
1 k+ L5 W+ |. I+ M0 `/*  获取文件夹下所有文件名. w8 h& O* k# `+ _% t4 K! B
    输入:     
/ _( p6 U$ f& i2 r4 o: x8 B& b        path    :   文件夹路径
" s+ Y9 ?+ w" Z* _- B8 c        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有+ Y6 p6 w& e5 H0 I# z
                    文件名, exd = ".jt"/ r8 ?# \2 K% I3 g7 }
    输出:/ c  n3 \. T& ]) D/ m! L! q
        files   :   获取的文件名列表 含有路径: _! r- \7 L" t1 m% @. U
*/
' ^/ M0 _( I" z4 U; Y9 w/************************************************************************/  W0 O7 q3 L- q2 O% ?
: k3 X! S5 }/ ?+ y1 W  A2 h
void CONFIG_getFiles( string path, string exd, vector<string>& files )
4 I1 v- R" N  k) I+ P' G6 U  u8 O# ~3 D{
) Z2 e! o, j( C( x2 j' b        //文件句柄
; }, d( Y/ T3 M) o; [& z  x    long   hFile   =   0;
" Q; l( D' t/ v% [  n    //文件信息1 Z# x! ?& ]9 L& L
    struct _finddata_t fileinfo;2 W1 F3 _$ v$ v1 S+ B% a. ~! z9 ]
    string pathName, exdName;
, f  E4 y8 J/ }
+ p6 W2 z$ K! G8 L( v     string p;. \9 Y5 P2 G! A  R
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)8 Z$ Y. k4 t' g3 [  t; s; \2 Q
    {
& s: J/ {- f! t9 Y        do. C2 w+ ^" O  R3 v/ m6 R  P
        {
0 u! J8 c7 ]8 J; E& R            //如果是文件夹中仍有文件夹,迭代之% X, J* E, a+ Z4 K4 }0 _
            //如果不是,加入列表4 H1 k, A: p, `7 \! k# U
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句4 N- n* @; I  s9 `; ~4 v
           if((fileinfo.attrib &  _A_SUBDIR))4 l9 O+ o7 J1 b' @& @) |  P5 P0 G
            {
/ H2 ^' X3 C$ i/ a                                % E8 f# q) y3 D; T& f9 T
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)# ~0 O# R6 U- V9 V! F0 _
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );; E1 z9 D: ~/ H
' e1 C6 o" B! i) E
            }% ^0 j1 j: n# I% A/ w* N
            else
7 R! F* f) {2 b6 u7 _4 J            {! m& ?0 D6 n- w# ?$ I0 a+ `2 L! Z5 E
                                if (strstr(fileinfo.name,exd.c_str()))9 Y# o+ e- N5 C! h
                                {
0 u# s$ W( }! Q8 O1 n  N. y                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
8 a* s$ B5 O/ M4 U; R                                }
2 R  v* W% U# X  M6 H- S0 s2 G) c3 L% d: O
                    //如果使用
) q  h+ T- g1 r# o5 B2 z% k1 ]' R  o                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句* r; ^* [& v+ x; q2 \8 E5 T
            }( n/ E0 _1 Q) h# ?# }+ l
        }while(_findnext(hFile, &fileinfo)  == 0);4 M! E/ G; p5 G' _
        _findclose(hFile);4 W. I, G4 N1 I3 x$ s
    }
# J0 t* s( X& |+ V# r( H}
( S' u) \# I( |[/mw_shl_code]
5 u; q3 ?$ D( w& B! p0 I5 B( p* Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了