查看: 1768|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

积分
60
发表于 2020-3-4 21:04:15 | 显示全部楼层 |阅读模式

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

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

×

  M( f7 m6 s! ~2 `8 r  N4 j8 f3 Q[mw_shl_code=cpp,true]#include <string>
' f8 F& w3 {1 w#include <io.h>
! Y  |. `' ]; f3 U  k7 n* p+ N#include <vector>* s* h) t6 n! f) t0 h
#include <iostream>
6 F- N! h; X" B2 r$ |#include <fstream>
' \( C# F; N8 G/ i3 \1 p2 ^+ tusing namespace std;
7 M' _( k' w  o& K. H% G# ?. X# E5 d+ x# h: R1 V
         
" W* C0 u9 W$ y# @  w' |- P/************************************************************************/( |1 z0 L; G6 b( z
/*  获取文件夹下所有文件名
) V; Z2 a( @; U4 \' s7 n    输入:     . _. Z7 |' u/ f& c, s6 p) r. P! P
        path    :   文件夹路径
6 d. H- J1 s9 v% ]# [        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
: i$ M2 Q% U# O! p                    文件名, exd = ".jt"
- ]& V2 D1 `3 c) }3 C( d$ u    输出:
+ ^/ S7 O. s3 r# w/ \' V        files   :   获取的文件名列表 含有路径2 F* c* e3 z+ d$ z8 X, e2 a
*/
" k4 f( W: v/ r5 h' O6 b- f/************************************************************************/* ?  J: a+ }7 a6 q1 A
% B9 a$ X" U/ q: X2 @9 X
void CONFIG_getFiles( string path, string exd, vector<string>& files )
% t+ C: R4 a- S{
4 ?8 [) _- j* T! ~2 g' X+ ^% w1 @        //文件句柄
; \5 R& B. V) I- _; Z, V) {    long   hFile   =   0;
8 m4 u+ a* C/ n- x" o/ U    //文件信息
: ?5 x: i' {: {; u' l% E+ W; t    struct _finddata_t fileinfo;
* s6 ?, C5 S- e- M0 G- i9 @7 `2 B    string pathName, exdName;& ]/ G/ F0 ]5 Z
' _, q# W* h* u5 n' b* d2 ^; R/ l
     string p;
+ Q5 Y1 v; \: p4 i; O' W        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
3 T4 e) |. {$ x! Y$ M6 H) y" W    {1 A" [4 J' {8 b5 E* p" Y& Y
        do4 @5 I- a* ]) i
        {
" S; N) [! P% ~) B3 u  q+ |$ T/ M            //如果是文件夹中仍有文件夹,迭代之
) W: ]0 Z/ O. @$ e  w( O9 {0 {; O            //如果不是,加入列表
- p3 l$ P$ _7 V: h5 c4 w/ z  h; d            // 不推荐使用,硬要使用的话,需要修改else 里面的语句& L9 k0 ]) j( ]9 q; Q" L9 i
           if((fileinfo.attrib &  _A_SUBDIR))8 `1 a5 ^5 b6 `* g( f
            {, @1 j3 E7 @8 I1 U
                                + t$ R- L* }9 |( K4 C" `
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0); F/ k; ?; a# y6 q; P7 B- U4 q; y5 A; c
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
. e( @: @+ D) E6 b! A7 U
8 t" S  J# u* x$ g$ n            }
# `. g/ c# Z: A9 |3 x9 `, b            else 1 j/ \5 K' h) n3 I' R
            {# y1 T8 h0 ]0 M# v
                                if (strstr(fileinfo.name,exd.c_str()))% o5 \  d) A5 h
                                {4 E( T9 o: @, u
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
* ?  j  c* ?- Z2 b7 e/ ?$ k  m                                }
7 m( z3 t% k) \/ d; B: D9 X0 l" G* Y2 R
                    //如果使用
- c7 {# n8 W3 i  S; G9 W+ H$ p                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
* w: ^7 h) k6 G  z0 u9 l- f; o            }
& w% U+ [6 a" }        }while(_findnext(hFile, &fileinfo)  == 0);$ Z5 F, n/ c( }- ?
        _findclose(hFile);
' |8 X+ G/ Y" c8 X7 F0 |    }
3 X$ c5 u. t# w) E+ o}
! S0 k5 z  |; H[/mw_shl_code]- U8 Z, a( M- q4 [
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部