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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
* o' M$ n. ~# L; f% x" v
[mw_shl_code=cpp,true]#include <string>
5 V) E. o0 Q" M+ z+ q: h$ j& R# F" }#include <io.h>% B' ?* Z7 `- w" v
#include <vector>" c% o5 _% n+ t2 ~/ B
#include <iostream>6 h( |8 s* s4 A8 u( ~8 A
#include <fstream>0 X8 \5 L; |4 C, z
using namespace std;
7 x( H4 k5 N  s9 B0 |) R* T( K  e8 h6 k. F" B% U( P1 i4 z
         
) r$ P* L0 O' N1 C+ F" [/************************************************************************/
. K& E  n; V! ~6 A# ]/*  获取文件夹下所有文件名. N/ V* o3 f8 q; n( n' E9 O. u) \
    输入:     
  @8 z% P* O3 c1 t1 ]        path    :   文件夹路径6 y3 a; b7 s+ J8 {# X5 w' S. ^
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
9 w8 Z  q  Z$ h* u% n, z3 F) v                    文件名, exd = ".jt"
; w" M' i7 V' |* T' e& s    输出:+ J& c; m! v: E$ C# F; x
        files   :   获取的文件名列表 含有路径
; E2 l5 y0 q+ j0 m. L*/
  |' ^0 h8 Q% Q. [5 G& {% f/************************************************************************/7 z% d- K5 f2 d! x7 I- K* [

; r' S; E" w9 rvoid CONFIG_getFiles( string path, string exd, vector<string>& files )5 ]! X$ H7 o! O1 X' z0 h0 g' q
{
2 i" N; I2 r) L( ^# f7 _. p        //文件句柄
7 d, q# A( y! n* h% n* |    long   hFile   =   0;
7 F+ i- I7 Y6 F3 I2 l, m, J    //文件信息/ W  t$ V$ w1 P3 w! x% O
    struct _finddata_t fileinfo;; _, Z8 M! @3 c8 ?# R5 G/ @/ @
    string pathName, exdName;
2 ]$ t# G# [0 y5 S3 A$ v
; b  ^; ^( N+ P$ H7 b     string p;2 h2 X* `: f* t% R5 I
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)5 ?3 y: C; c7 L3 a7 {
    {& Y, J* [8 Y, C0 n- Q
        do$ a7 k/ ~! n: d$ }
        {: K; v6 Z8 y9 p8 z1 H3 ?4 C0 [
            //如果是文件夹中仍有文件夹,迭代之
1 v" Y  B( p$ s, a3 S$ R+ T            //如果不是,加入列表
$ w( [2 B4 w6 u. l0 W4 e            // 不推荐使用,硬要使用的话,需要修改else 里面的语句) q" c0 }4 a- i# b% I2 s/ z* D
           if((fileinfo.attrib &  _A_SUBDIR))
! R" o6 G- W9 o1 ~4 N8 q# ~6 m& u            {3 @! \. p1 D! E3 q
                               
2 `0 B! H. ]5 \+ M3 r" ]  _: {              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)3 A0 m1 w" |9 D6 A6 D
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
; p4 d2 t; B% f( Y- s' z! `+ f2 s( ]6 }
            }
# z  }, F7 D7 ]9 [5 @; P# P4 _' [/ H            else
8 Q7 u4 \& j; u% V/ O& Y            {& T+ w. i2 O' I
                                if (strstr(fileinfo.name,exd.c_str()))
6 ?0 p7 f* x  i+ E8 B0 H- D                                {3 [6 C: \  W4 `/ Z4 P4 \3 f
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
! h) U* S: ?. Y7 P5 u0 m' j                                }
  A! X7 |  H9 e+ P- c! y7 _! f5 a5 f8 I9 g6 {
                    //如果使用
* }1 u" d: x9 v4 Y                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
0 @. g" t0 t  g            }
, @% Q0 j( T5 l% F: ~        }while(_findnext(hFile, &fileinfo)  == 0);+ H) v/ u, R1 r% Z1 Z: `
        _findclose(hFile);
" u* E: h, ]2 T) \; T    }6 N0 @+ {1 u. d, A+ Y, q% B3 _
}% E3 r) _1 b! w
[/mw_shl_code]( E. [) ]: y% D; i* ^; Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了