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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
/ y+ v6 c7 ^! k4 g  k
[mw_shl_code=cpp,true]#include <string>7 I' `" [% q+ ]' _2 j9 F
#include <io.h>
1 ?0 _' U) i* o) B: O- n* t- A#include <vector>
% Z! k( U( R; M0 A4 K+ _#include <iostream>2 K1 m( Q+ _9 @8 _; m6 x
#include <fstream>" J% Y6 V& w* u4 N$ i* u( s8 `
using namespace std;
# w# n: r2 b/ D% f" x) n! Q- W+ j; N9 k  h5 y
         
" H, U) O! v7 ?3 Q/************************************************************************/# j, f( g4 F: T: L$ @
/*  获取文件夹下所有文件名2 i9 w1 H4 a" _/ d
    输入:     1 x. p' \; D' t" s1 |# x5 c" @3 s
        path    :   文件夹路径
% f+ O/ l4 A/ E! l7 X        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
( c4 d+ y; y, X% u                    文件名, exd = ".jt"( J9 M0 f+ ^9 q2 D* _7 Y
    输出:
; z# F* A# Z7 p4 E/ |* a        files   :   获取的文件名列表 含有路径  p) r: V  ~4 D
*/
) E6 ]+ Y) Q3 @2 i3 N. ?/************************************************************************/
" T& s9 g2 C2 r* w8 M* F& u; }8 ?3 I% N. W, h% z5 y7 ^" ]
void CONFIG_getFiles( string path, string exd, vector<string>& files )
0 y( X2 X/ N# _/ L: K{- ^: i9 O! P+ k: ^/ A/ E3 U
        //文件句柄
) M# N( f5 g/ D- F. w  Z0 ^1 I    long   hFile   =   0;$ D/ c' X/ F( s/ h+ E
    //文件信息0 g- N' E; `; O) M  R! n2 a/ n
    struct _finddata_t fileinfo;
" K6 c  }6 E* J; n    string pathName, exdName;
1 S$ z" u. \, {0 @! T5 J9 B- u2 D+ [
     string p;
2 |% k. m0 |5 u0 K' l        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)5 _$ z+ l" h- e  }2 k8 C6 A
    {
. a) ^4 J$ Y5 |: x/ i+ u        do/ F7 E  A7 W# A. R
        {4 y0 S) Y) X3 K$ e: M
            //如果是文件夹中仍有文件夹,迭代之5 Q  u: d1 H/ P' D- e
            //如果不是,加入列表
* g0 z9 \: A0 L            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
# x9 m2 V4 [( C! O           if((fileinfo.attrib &  _A_SUBDIR))
6 {2 R  d7 a" J& o9 ?- l; V' m            {
% S, J  ]8 q7 g- ^6 ^! E                                * p, i8 J+ s" [* W+ ~
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)" w- F* A* ^9 ^) j; {
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );! R9 K, M" R; R, s" N

7 _: B$ |1 U& e            }: W! D1 P( B8 w$ `$ ]
            else
" N+ Y) d; q4 W/ ?+ `            {
7 w/ \5 G6 q( X4 V                                if (strstr(fileinfo.name,exd.c_str()))6 u& C9 Y  e7 |$ n. C" r
                                {
% O/ J) {, l( ^* s                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句- g7 B. E4 |# ^# U# F" ]2 a! e1 u
                                }
/ v9 N5 c3 W! U0 x  a" B
9 o3 j; m& F0 d) i$ k2 Q                    //如果使用
4 E  S* {/ q1 B: A! E6 \  ^                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
8 g0 I2 }' a4 e2 j            }
' L- A$ K  t; d        }while(_findnext(hFile, &fileinfo)  == 0);+ @& G2 I. r" z" K& }& W
        _findclose(hFile);
7 l( P3 n/ T5 I" I    }8 {) N+ h" N' j  g% p% k4 v6 r
}* P* Y/ x) o" {
[/mw_shl_code]
% D; N$ a  q0 p. K- G3 z) w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了