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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x

4 k: _( I+ _+ k[mw_shl_code=cpp,true]#include <string>
7 b& {  ]) k: l- I* k  x, T& v#include <io.h>
8 \! c# m; g, i7 X5 v#include <vector>
8 ~# p" C1 E* J- ^* [" Q#include <iostream># }5 R" @  _3 ?) f* F
#include <fstream>1 x! K) x, k$ t
using namespace std;
4 R5 U1 M) s" P4 ]( a) O& |
2 x" G; L. U! K, a/ k, `" q- v) U         ) |1 c! u9 n+ X
/************************************************************************/
/ I/ t$ e0 ]6 v$ o# _6 T" D5 n/*  获取文件夹下所有文件名
; i. p% }( {* j! h    输入:     8 y' U: ]0 a9 w7 Y0 V
        path    :   文件夹路径! Q8 F6 J% a! \/ g5 y  e
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
' y' w! p% v( |                    文件名, exd = ".jt"
6 J% G! i; B7 a8 g" c1 U1 I    输出:; |; H% t7 e; Y8 b) D+ j
        files   :   获取的文件名列表 含有路径
' j& w2 N- P# Q' ?  x/ P*/
. o# x  l2 }+ d* C4 W+ N& T/************************************************************************/
) M) a: Q, Z# y" `  S; c) @* L8 c  a+ _
void CONFIG_getFiles( string path, string exd, vector<string>& files )) [+ I6 C5 M* R* t
{! n5 m. r: [3 ^
        //文件句柄
0 A* G) T, ]/ e+ Q5 O" I1 U( ~    long   hFile   =   0;/ G: B8 b8 X5 u
    //文件信息
: f" C% z9 Z3 D. ~2 O2 V    struct _finddata_t fileinfo;) R' S1 l, Y: z1 ^$ z: B
    string pathName, exdName;
; H3 x! x2 K6 G: ?9 ~
1 h  E' P4 |0 ~% R     string p;1 d: x4 g2 F5 w
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
. ^& H5 b2 b4 B: @    {, r- u" J0 o7 |1 n$ Y
        do* n* t$ l1 b. w. H7 H, A
        {
  p! x3 l9 w% e& h' F( V# b            //如果是文件夹中仍有文件夹,迭代之
4 X8 Z6 m4 ^* x. e            //如果不是,加入列表
; p" b4 z" |: `+ ^- z7 h( H5 ^3 N1 r            // 不推荐使用,硬要使用的话,需要修改else 里面的语句. @) A$ l" ~0 ?% r3 o  c
           if((fileinfo.attrib &  _A_SUBDIR)), _; L* j. @, K( i  U* A
            {( w  j, z" t9 D0 g6 N& L2 U/ c
                               
. ^: Z) I  L# [6 e" E              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)' e" [( ^! J- I
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );/ s8 Y: u6 M5 ^, \. @9 d
* C% R1 P7 F( g2 W* W  Z
            }
1 a4 \( {0 g1 U% \( u4 A3 u5 ]            else 5 d  x7 C/ F. e% B5 ?
            {/ Y% |4 c" ^* o
                                if (strstr(fileinfo.name,exd.c_str()))5 E3 J) v) X: u; @% L, A7 M9 O1 v
                                {
& }1 w3 v# o* X' R! h1 c! e4 Q$ b                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
+ _+ J% L+ w3 F9 G- _/ U                                }
& ~! a: O4 O" _- j6 e* c9 \0 ?7 p8 m$ _% G& u8 M8 j
                    //如果使用/ X. s" i# C9 g0 G) m) W: J
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
# u9 ^) `6 ~" E) R/ |; g            }
. y4 O) Y7 \2 @- P, L& k7 c1 ^  x# L        }while(_findnext(hFile, &fileinfo)  == 0);& ]4 q% }9 d, \" ]" ]! d
        _findclose(hFile);
& K/ e9 a) e$ Y) x# H+ o    }
  H: I1 k9 P9 ~) B, M7 z}
$ }$ ]1 ~. g: \/ O$ H[/mw_shl_code]
. P& l. J/ H1 m5 R# |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了