查看: 1819|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

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

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

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

×
2 W5 Q! I% U% B& {' q# H: w% {
[mw_shl_code=cpp,true]#include <string>
, @! V9 g$ L  R' p. y7 z) X0 Q2 Y#include <io.h>
- U) P3 W1 D6 z: G9 _#include <vector>
, g; ^+ x* v8 h' [- Y1 U#include <iostream>7 k3 b  b5 n4 f
#include <fstream>
1 y) P! X) N# G* C. ousing namespace std;
/ s5 O5 s6 F/ O8 W  e. Q) g/ R0 A' N! Z' }4 B3 U3 i, @
         
* K1 i6 o$ J2 y" Q' I$ z8 J/************************************************************************/9 q+ h( V, o1 m6 ], D# G; X
/*  获取文件夹下所有文件名
, E3 m8 g/ P6 [: W    输入:     * s; s1 r- g. _( u4 }, Z/ t7 d3 y
        path    :   文件夹路径
. a% ?, Q' S3 q2 V        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
& `: x! }+ n5 p7 `9 x; f" ~                    文件名, exd = ".jt"* O2 {% w- c/ r$ {: \
    输出:' l1 L# ~. O  w  p
        files   :   获取的文件名列表 含有路径2 h8 g$ ~2 K+ r  W) R
*/
! t: c5 x4 [& a$ H. k! Y) Q0 T/************************************************************************/
0 J3 G5 W) w* b8 U
2 @! ]+ q2 y4 ?+ s. \$ d2 Q8 C( Mvoid CONFIG_getFiles( string path, string exd, vector<string>& files )) t! _! V' ~" H9 c2 K2 @5 I8 y
{
& g" m6 @/ ~. o$ ?* D        //文件句柄
4 o/ D/ U; t1 ?! Q    long   hFile   =   0;
8 t' E% y; }1 N9 J    //文件信息
( k8 `# \9 ~3 V% O, o/ v    struct _finddata_t fileinfo;
  B' x/ k1 \; E4 x    string pathName, exdName;
- }- b9 a7 v7 q$ P" H2 i: B7 q
* z# Y! k- B5 d     string p;0 J1 z( i8 R, @
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)* D: c; @6 u8 @* x
    {4 \% k& D& G& e% n/ ?
        do
: w3 l$ e+ N2 X, {& U        {5 a, h- y6 ^9 D
            //如果是文件夹中仍有文件夹,迭代之
  v& ?; U- W6 ^" l3 z0 S% e$ q6 v4 s- [            //如果不是,加入列表
* y1 t/ t' y2 n7 K            // 不推荐使用,硬要使用的话,需要修改else 里面的语句" s1 u, p! g, S, t+ e# L
           if((fileinfo.attrib &  _A_SUBDIR)). ?$ Q# A- B$ k# n7 h" c" L
            {
3 S, q$ |8 m6 [8 S, e) ~# ^0 w                                4 H! e& s/ D" u; `, v* G
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)1 y* e4 u6 Q# Y0 @7 w
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );: c8 Y, G( b) J2 M' a0 J& [

( [- x; Y1 f$ e! e2 a) {; B            }
+ t$ c$ e( j$ H/ K! A" T            else - q% q7 n! E3 e* R& ~
            {
' U; P0 t+ ^' I: m# ?0 C  U                                if (strstr(fileinfo.name,exd.c_str()))
% h. H2 }# q) g& N6 C                                {
5 B$ S( B; w5 X1 H, N' G3 X. m                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句6 t: n1 W* h& m, v1 a8 L2 E1 r1 l0 b; v: f
                                }, {, Q. h7 E5 d2 \# D7 h
# Q0 x: [. J) R5 n9 |! i% b2 q' E
                    //如果使用
/ Q* n9 |/ y" z3 l! y6 T; i0 a. J# {                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句  t  g$ [5 J. x* J; M0 }% D0 Y
            }
, l$ a* \$ H- X9 K1 @5 R2 L1 R        }while(_findnext(hFile, &fileinfo)  == 0);( v  B, R, ^/ @2 h- G
        _findclose(hFile);
5 n8 Y( Y  \0 {/ A6 a2 }1 c4 n: H    }* M( @) d( H! P- d; E
}
7 r6 ]3 T" P* _$ V0 V/ |: C' h[/mw_shl_code]
8 w- n1 h6 O; Q5 z2 h8 |
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

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

本版积分规则

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