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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x

: a- W' k7 H8 r7 \[mw_shl_code=cpp,true]#include <string>$ y: o4 Y4 J) e/ }5 l0 o0 L
#include <io.h>
' S: L" r" _8 F5 w9 j#include <vector>
% p" u& ~- o9 P+ D2 g; m0 N#include <iostream>! _* M* j* d* X# d. K* K* b
#include <fstream>
+ S/ p5 N# _# J6 y0 M0 u" iusing namespace std;% |' j% P( p. ?" f
# C; E. ]9 h, g. i  |4 L2 Y' B) a
         
/ D; F3 l) W/ z* I3 \" J/************************************************************************/
1 e% X5 p( M# v. `. ^/ ~! ], E/*  获取文件夹下所有文件名5 F( i; v$ f& B
    输入:     
. h0 m" M9 w! |, v2 n, q) [        path    :   文件夹路径
! W0 E' Y: Z1 Q2 {        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有5 Q4 d9 Y* }6 |  k% E
                    文件名, exd = ".jt"
7 Y5 g) G% i8 Q7 k6 {" X& I  Y    输出:7 i' h9 p/ ?0 O8 y! Y
        files   :   获取的文件名列表 含有路径
. g. u# I% G* o2 F7 X*/
3 B3 e, ]- e# K% G; ~" S0 |  K3 ^/************************************************************************/
0 D- ?' L' J7 B5 W5 x
# W- F, M" k8 ?9 Z& W0 ~void CONFIG_getFiles( string path, string exd, vector<string>& files )
8 Y: ^% n) b9 B  Z0 k6 N{
1 ~. F# t6 _+ W6 `        //文件句柄# l+ C- a! W/ _# i& {
    long   hFile   =   0;/ ~) K# e1 F1 q( t  s3 l
    //文件信息
+ ]! @( o5 {3 }  S$ @( c$ n$ J1 n! {3 e    struct _finddata_t fileinfo;
- x& C- `9 n0 r  U0 q    string pathName, exdName;+ o+ z# C$ a" S7 ]
8 c3 b& h* n4 h
     string p;
9 A  R) C% y# e9 i  f6 z        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
$ v4 \& X  f' q, l0 C0 N    {# Z8 f( b: q0 {( W) P
        do; d3 {" h8 |6 E5 M% A
        {; n5 I/ |2 J4 B6 C  t: W1 t
            //如果是文件夹中仍有文件夹,迭代之
& [8 B9 v) e5 _( t( y            //如果不是,加入列表- p" F+ S) s- R, F+ D* D4 A! G
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
( e' d/ A8 V( j8 n% Y9 g/ o4 i           if((fileinfo.attrib &  _A_SUBDIR))/ [8 z4 C* N/ w  E$ B
            {1 M+ l+ `0 G1 M) r
                               
% S* k& |; v3 F0 w. e              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)( c9 X* _; k# [: k8 ]  n
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
. z9 q, W4 N5 }7 l8 F2 b7 W$ C3 T, G1 r2 W% H; l3 Q, l' D
            }
. ]$ p; _+ p8 q! L2 ^) F% ^            else
  F4 h* q/ w8 Q# N7 b            {
' Q/ M1 m! `, O" T' O7 }4 Z                                if (strstr(fileinfo.name,exd.c_str()))! d: O+ l8 A( Y. i
                                {$ B2 }8 L6 F4 Z2 P- N5 H
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
8 V, F' d+ ^" W: n# Q: p0 b0 F                                }
/ b0 y' x4 ?, a2 P& R9 n3 ?, z: b* v
                    //如果使用
7 R7 X; c8 o6 t( J                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
/ H# O% `  H: t5 U4 _" ~            }
+ K+ ?+ r; B& T1 X! W% u5 A        }while(_findnext(hFile, &fileinfo)  == 0);
4 G& P0 F( W. ]5 y        _findclose(hFile);/ Z' i5 f  x$ W! A
    }% U- I# q! b; v; x
}+ p8 v, Q" ~$ g4 Y+ B7 z
[/mw_shl_code]
2 ?* G4 s* z0 ~/ M+ V7 s: f3 ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了