查看: 1691|回复: 0

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

[复制链接]

4

主题

4

回帖

52

积分

管理员

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

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

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

×
$ I% @. v/ M7 ?" ^2 ~
[mw_shl_code=cpp,true]#include <string>
8 ^0 C: |, A* v& w#include <io.h>
8 y) F  a# I# c1 T#include <vector># S8 c" X  i; A/ k! Z
#include <iostream>( l) ]& A( ?7 L( }# W* c
#include <fstream>
/ d1 h' f4 A6 q$ o5 p( ousing namespace std;
9 T( \6 r' o3 i8 P  ?9 y: A% R/ _- _# v% i. S
         
" j0 y, E$ y- F/************************************************************************/
7 U/ R( Z" u9 K% J2 K% n- ?/*  获取文件夹下所有文件名
$ Y$ N2 D5 {" M6 E- {7 ?0 q' x    输入:     
/ R1 ?& W! z; M, f/ a6 G        path    :   文件夹路径
. {( V& E7 k9 K4 i* f' _: A/ |        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
( l3 t" h" A7 i6 t, }8 W/ w) H+ R                    文件名, exd = ".jt"$ A- z2 O8 O; ]; R
    输出:! ]6 ]+ \$ K4 z9 X1 A8 d
        files   :   获取的文件名列表 含有路径/ r4 p/ F( z, L: s" U  c
*/
+ r0 k4 u) O- @9 a% i: Z: g% u4 U/************************************************************************/" m( y5 D5 m* |
' T' {4 h1 s& P
void CONFIG_getFiles( string path, string exd, vector<string>& files )
/ N  S' N- y) L# @& Z9 d! i{
7 [9 x, L6 V% `4 q        //文件句柄( D- ]$ t; h6 Y' R
    long   hFile   =   0;
6 T# f7 p5 e5 s: D' P    //文件信息
3 _5 k. }& P) z& K" u/ B0 U, u    struct _finddata_t fileinfo;
' L% A" Y- _% X4 N& k    string pathName, exdName;
( X( ~0 W6 N% [- e# s4 n* [# o- `: ?& P5 I
     string p;
  M/ h6 L2 l- B8 w$ B        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
" R/ m1 o; g! b& Q9 |% Z7 l5 d& N    {
4 |. K+ @0 y1 e* u* m        do
* D8 l4 J8 Z0 x        {
+ d; z0 t. B/ i            //如果是文件夹中仍有文件夹,迭代之* N, h- T7 k! T) A
            //如果不是,加入列表) L  F! P! E4 F
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
8 p. v1 F2 n9 _           if((fileinfo.attrib &  _A_SUBDIR))
6 e# r: X9 i  j: X            {- f0 W' A4 @  I! u% l3 r
                                & S5 h7 G; L1 |) l- I: ^
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)9 t! V: f! N: B3 R3 E$ [
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );3 o1 T  v) K0 C+ \% K# m
/ i3 g" V/ p* c- b5 r: v
            }% q, ^/ s  V- e- f- s3 `  S
            else 7 G; p5 q8 T. n5 n7 t! q* w
            {* ^9 X$ F8 @( Z) c
                                if (strstr(fileinfo.name,exd.c_str()))
/ w$ t8 w3 R1 ?+ g; a. M0 Y( N6 E                                {/ O* Y; ?  o) c4 u
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句, x1 _% `1 n/ q: A6 J
                                }
+ Q2 j6 f# i0 T& |, d- x# N! w% k
                    //如果使用: l5 X; \* W0 g, ]; ?6 L  _5 D2 X/ H
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句3 _# o. }0 Z' R: q8 O
            }1 b7 q; y- S  U( T. k2 C/ Y
        }while(_findnext(hFile, &fileinfo)  == 0);. c4 P6 A6 F- x* Z$ b* c
        _findclose(hFile);2 Q) C* n! D% [/ [% Q, m
    }' _1 d# }: V' `; V0 U3 J: U' ~
}
8 l5 Z) T! X% W5 _$ P6 f[/mw_shl_code]" v) G' T+ x. @/ Y  p7 l
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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