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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x

( }$ A& D. ?, I! I; }- Q8 m/ q- G[mw_shl_code=cpp,true]#include <string>
$ j0 D. p! R+ ^" Z#include <io.h>
# z. y. B& k5 r. s#include <vector>& v% x: l2 ?  \, n: N2 e, F
#include <iostream>/ z0 U  _, e9 A$ M0 e
#include <fstream>
3 U  K  r- h# Q3 B5 V, wusing namespace std;
2 {* ?4 n1 g' @9 G% v
$ J& o) W, ?% r8 T' K% W         * g" z- J6 R$ |7 |/ i2 S$ c
/************************************************************************/1 x# S5 r# N4 q; e3 f/ N! r0 J6 [
/*  获取文件夹下所有文件名% u* C2 Z( u- P. |
    输入:     
3 ?2 y3 h1 \4 l( U5 R, u% ^        path    :   文件夹路径! d( u" |* x" x4 I, `
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有6 w' f( z, e$ ~; Q! y8 S2 p2 K: a5 z
                    文件名, exd = ".jt"
8 S: g3 P% P9 P% U! B/ \: q6 S6 Q    输出:
% S. n/ f% v9 D' [! o/ d        files   :   获取的文件名列表 含有路径$ b: S+ ?3 y- y- x" H2 u. |
*/
. ?1 F/ f3 i: N% u0 E) x1 ?/************************************************************************/0 V1 ?- E1 g2 \( @/ a
, B: Q& b7 k  l9 U7 U3 M
void CONFIG_getFiles( string path, string exd, vector<string>& files ). D0 f/ U0 k- \3 B# o" A5 A# d7 ~
{
+ x4 R* y% _0 A        //文件句柄
- a2 e& \4 r9 N( u/ W% e) ~    long   hFile   =   0;
4 H* U5 Y5 x& i% m/ b- L    //文件信息
% t% a0 a+ X6 ?, h; q9 |    struct _finddata_t fileinfo;
  w  m/ A0 X; M7 X5 l2 B' b5 E    string pathName, exdName;
7 z9 f; t: m; L; Z+ o" o  H+ U3 e2 P4 E0 t$ f
     string p;8 t0 y9 ~* Z) `" n- c8 D  K2 p$ Q
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
5 {9 I6 ~* ~1 Q    {
! f0 a, k+ ^. S- o        do) I$ B7 C0 f6 c& i, B6 Q
        {
  J! L" P3 w$ Q; r$ W2 Z/ d            //如果是文件夹中仍有文件夹,迭代之7 j1 Z5 x5 I5 \: ~# Q
            //如果不是,加入列表6 K) Z4 Z! N. J( L% d3 i- r: N; L
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句5 R* }- [% n- O2 e' i( \: ]
           if((fileinfo.attrib &  _A_SUBDIR))
! G/ x. f4 e9 V7 t            {. W# t( J" u7 F5 U4 i8 ?
                               
" j. U' g( r4 `5 w  d2 e$ {  d              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0), q0 ^) _1 x  x
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );6 K* m' A& f& F* P# c6 t* _

% p) a7 ]  G6 ^" M! {            }6 J0 E. F4 A7 p2 F/ u3 R; N: Z
            else / O3 o; k0 \2 T& h
            {; g0 r4 c6 V& n3 M( j; A' u
                                if (strstr(fileinfo.name,exd.c_str()))
( Y( ^& D' T' [7 m7 e( b' D) p                                {) Z# B3 N5 O. [( b' R  g
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
0 z$ G+ f0 `- d. _                                }/ t6 f) f8 f3 P: ?% T( T% {
% r' `- r) y8 x. W
                    //如果使用  l3 }; \7 g: C4 Q4 j3 |7 U! l
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
( e! g9 H. T8 N& [7 j$ W; {, N            }
' p4 w* q/ K8 s* ~- \) J        }while(_findnext(hFile, &fileinfo)  == 0);0 K1 ?# ]; @6 @/ ^9 y( ?, n
        _findclose(hFile);  I0 i8 D- Z1 s$ f- R  `8 J
    }
$ A1 z% ^- E0 i6 j( c}
/ f$ A2 a3 ~  k8 j) N$ {( }[/mw_shl_code]7 d/ g  l4 g* p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了