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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x

  _' l+ z# H- V$ T- f  Q' K[mw_shl_code=cpp,true]#include <string>
% \% P- E8 }9 U: M2 m3 I. M#include <io.h>
1 ?$ b# Z3 t2 a( g4 ~#include <vector>
4 j1 U. K5 k+ g( }5 a8 O#include <iostream>
4 m# S6 g0 b5 T4 j- v. H- |0 p, L#include <fstream>/ H6 t( X" ^/ X" {
using namespace std;" k# c: H0 _$ w
4 _) j; X7 b, [- s* `
         
6 ~+ Y  c. l' U: c' ]. u/************************************************************************/! K  J  a* C" w9 @' ?% m
/*  获取文件夹下所有文件名
  R, l) A! m( i8 B! _    输入:     
; m" e% G- i' P" p4 \        path    :   文件夹路径+ B0 J; b0 X8 k; w3 {6 _+ P
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
& @) k4 z' O: M; u1 |9 v1 a                    文件名, exd = ".jt"  i# o" S$ {5 |
    输出:" s% d  j' |2 }1 p7 L- g/ _
        files   :   获取的文件名列表 含有路径0 y& ?- }. y9 z6 ]: v$ z8 t
*/
( J# I+ U' w/ o/ p4 @. I/************************************************************************/
7 p; u; |, q. M1 S+ z3 S6 y4 m- K% F0 h) g( f
void CONFIG_getFiles( string path, string exd, vector<string>& files )' I! ~/ Q% n' [; \% d) p6 ?
{
9 k& g, J/ `7 @        //文件句柄
1 O# x: Z* }2 T# o6 ^- I+ |    long   hFile   =   0;5 M+ z* \9 F% L+ [
    //文件信息& d3 L6 C1 r2 N7 Q+ G2 Y
    struct _finddata_t fileinfo;
* }4 l: r4 x6 M5 p! A& O    string pathName, exdName;+ _% N+ u( W- X
; R7 _+ s3 O; z9 d+ J) M
     string p;2 H. C* u) D! Q' _  ~3 C
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
* i; z% ]( V2 [    {5 ~" Q1 J. w: h+ p: Y
        do4 X; E. n- G  T7 D0 C
        {6 a6 q$ ], }1 y) L- P
            //如果是文件夹中仍有文件夹,迭代之9 N% a+ B0 Q( o
            //如果不是,加入列表% T6 W# M3 ^; S3 C
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句/ S8 l  [% b( w5 C& f$ j2 [" P
           if((fileinfo.attrib &  _A_SUBDIR))
: _: j4 P* P" u8 g# I/ e5 }/ \( f% o            {: \9 F7 T* f8 h: i
                                  r. D4 P: I, a. I! V
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)/ F1 N9 ?3 I3 }
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
6 y3 ?' y# w2 F# Y9 N
" o- T' y/ F! G8 E6 i/ }            }
0 W: G& ?  Y. l0 _3 v2 z6 j            else 6 r, h* t+ k: O2 V
            {" n$ `/ v6 m  |" F3 f+ n
                                if (strstr(fileinfo.name,exd.c_str()))% v3 n) B. g! @
                                {! }3 N' c2 O) M
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
% l2 B2 ^0 t5 M: T3 @6 S                                }
  B8 E( ]7 U, ^- r5 t  e
6 x& L* B6 r* B- M& ]' M! Q                    //如果使用2 c+ a! p9 R  I/ V4 q; y0 J# r6 p
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
3 E+ `0 U5 {& W# h: Z) u% @9 e            }
1 i8 x7 C& I6 y5 l        }while(_findnext(hFile, &fileinfo)  == 0);, b5 E! e2 M" x8 y8 z* {" ?1 R+ K
        _findclose(hFile);
. p* o5 f/ f$ K" d    }. W' C' H$ l, m! U* T! n+ F
}' m0 j1 t/ R" }+ U
[/mw_shl_code], p! [2 B9 h7 i7 ^
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了