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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
4 d7 P8 l- P- [( F
[mw_shl_code=cpp,true]#include <string>1 v, c9 {& E  ~- T0 d* w* l
#include <io.h># S  u! h; r  x; S- C- [% V
#include <vector>
8 \; O8 h$ h4 j, \- {3 V8 g#include <iostream>
% C7 @: S( ?0 u1 u4 X/ ~#include <fstream>
5 x. a/ y* Z2 y/ Musing namespace std;7 U- W$ @2 A3 P5 C

- U* o# _8 F8 X, G8 ?+ h         
# n) d  U* \- }% a, X' T* \% L+ ^/************************************************************************/0 I# A4 }7 j5 H1 I" c5 l' e# g
/*  获取文件夹下所有文件名
# }) i1 y5 ~3 @5 O& ?" g; d8 o    输入:     - B# o% _! L( M
        path    :   文件夹路径
4 Z2 D) F" y, h, {4 l( G" ]  C        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有/ L; O8 E: t- V- q) `4 Y; D
                    文件名, exd = ".jt"6 x0 L9 y! |5 Y4 y7 }
    输出:
3 o, o% p+ s( p$ c5 Q4 G; e) S& z        files   :   获取的文件名列表 含有路径0 y- D$ ~' g% D- c0 {( `" F
*/. W2 v; e7 A+ |
/************************************************************************/( _# R  n& c/ k, U. Z7 \+ x

$ h0 J( e/ h' Y" z9 Tvoid CONFIG_getFiles( string path, string exd, vector<string>& files ). N" z$ n- |  Q$ j& b; R
{. |, {9 ]) \* O0 J! c' ~1 a
        //文件句柄1 x' z* Z. r/ z3 x1 W) \  r7 X, ^
    long   hFile   =   0;
/ v; \9 N& i! z  ?  C; @( Q    //文件信息
! t& L# r' l4 m0 \0 F! w    struct _finddata_t fileinfo;
9 Z9 k  A2 c3 t) m- w* c2 {    string pathName, exdName;
9 v4 v! T" A2 I
9 l8 x' c- y% L0 P     string p;
9 J( i6 \: f# q        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
' Z. w& Z3 u" [1 a    {$ z% s+ R3 i: |* D* o8 H# ~; F
        do
" A7 |. B7 w7 w7 ]# q8 x        {: V; b. T- J2 J( {% x1 ?! z( g! D
            //如果是文件夹中仍有文件夹,迭代之
4 t5 ]" Y2 ~& {/ ~            //如果不是,加入列表% B$ u/ ^8 m' o" s! U) p; n% _
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
5 c6 V2 q$ [% Z/ k* o2 `- ?$ y" t' k           if((fileinfo.attrib &  _A_SUBDIR))+ e0 K4 I) u* c& g$ p5 ~
            {' ?! [- v! e( y+ q
                                4 d3 a9 }  \* Q7 g
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
/ m' i" H- O- W  b( h4 ?                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );; a2 B, w  X/ w1 E- \

# H0 n4 H& A# h' k5 H            }
* s% o1 t$ f# H            else # M, s' a1 M; C3 k8 z% R
            {1 x, R3 X( k$ c% k/ N& g& P6 S
                                if (strstr(fileinfo.name,exd.c_str()))
3 ]6 m9 f$ C" M- ~0 o                                {
4 g5 j7 Q. j7 X- A* n1 D: V                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句7 p$ }- l+ E" z$ f/ E5 `7 ^$ a
                                }/ U# m! H. V( O
0 L2 y6 V  l* V5 J
                    //如果使用3 j  a4 m% ~/ I0 C& ?
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句/ G& b( H1 A# ~7 l: l& Y# S& k1 m' C
            }
1 i5 e3 [' U  ~+ `        }while(_findnext(hFile, &fileinfo)  == 0);
% v, l8 A, U/ J4 Q% y        _findclose(hFile);
& l5 y5 M: ?: B- `    }9 U' C3 j9 ^0 M& K/ L9 ]( q
}$ K. D7 Q+ N! o; o' P# i2 ?& I
[/mw_shl_code]
3 ?7 `8 R+ e% r" w& k% L( 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二次开发专题模块培训报名开始啦

    我知道了