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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x

2 Y" r0 U2 q5 K# R[mw_shl_code=cpp,true]#include <string>( o+ v  ]5 y: G+ t( Z# B
#include <io.h>
" Q' k. J5 O2 J7 D#include <vector>( K) b8 b! f( g9 w
#include <iostream>
( g$ q3 h8 S4 F: F' M- D4 R( P3 }) q#include <fstream>% {6 A2 Z# d4 `2 C! O# A
using namespace std;, ?+ |7 V* [/ \- w6 Q+ T
( y! c" C" g# _, F3 D
         
. N" w" G+ M" y' z/************************************************************************/9 k8 j, K8 |9 H% j$ B
/*  获取文件夹下所有文件名
4 g' U9 t6 R! |9 R* `9 u    输入:     : ?8 v0 g: U8 l) }; u  N
        path    :   文件夹路径
/ N& a! z( V' l2 M' t1 H1 [( L        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
( ?7 p6 a* E- f                    文件名, exd = ".jt"
/ J- @5 n, W; ?    输出:" |7 ~# C1 p5 {% g& I0 o5 c4 f
        files   :   获取的文件名列表 含有路径
, N0 ^# a, Y# l- s0 q*/
$ O8 l% t: Q2 |# Q( P; S' S, q/************************************************************************/
$ i# I" @0 ~8 H+ D: B; b3 ~; g  M2 x$ t+ U5 e
void CONFIG_getFiles( string path, string exd, vector<string>& files )* F  b* S) ~; u
{
; n* p7 R( U* _3 ?- b0 o        //文件句柄
$ L& n& Z: Z( Z8 Z    long   hFile   =   0;
% u) w1 M1 T/ l- {6 Q    //文件信息
0 A) J* {, A1 O& g9 O1 W% d" I/ v9 E    struct _finddata_t fileinfo;
5 E! l7 b& S. T/ L    string pathName, exdName;% }6 p- d3 r# l5 X9 {- x6 S3 U

3 N9 d6 x- I$ i; [     string p;3 u  ~) q3 v2 \) y7 q3 Y9 Q
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1). M: ^8 V3 m5 r. i& Q
    {, z6 g& g  Q" P: U* C8 `5 o
        do  X+ u% F3 Z: V' m
        {, R4 \/ r8 Y* T5 s
            //如果是文件夹中仍有文件夹,迭代之
# G8 A1 Q& Y! w" l9 J. v% `            //如果不是,加入列表, T& V& w2 _9 [. T9 E7 S7 |/ d* W8 o
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句# K# d7 a6 X* U8 p  i- M
           if((fileinfo.attrib &  _A_SUBDIR))
, B0 e1 D/ @: t- R' v$ y            {
3 j& v+ P9 e- [& v8 o                                3 `" _% h$ d+ j9 C
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)5 |  `) u* V, @4 ~9 y5 V8 c! a
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );! {/ e. o+ [  Z) C2 b
2 q  J: p5 M7 ]% ]8 x. X
            }
6 X* C0 u; X. A# B. J% C            else - W$ u+ t" ]% Q1 h$ [
            {
3 |' B* B& A+ I% N2 j                                if (strstr(fileinfo.name,exd.c_str()))2 O) O+ C% K$ W& ^8 O7 M# w
                                {2 G  P( S( H6 }' F' N- O
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
: W0 c# s8 `0 d# z+ ~                                }6 E* g! g- F  X' x6 Y
- K. N2 {/ t9 Y
                    //如果使用9 u6 Z( s: Q" a( F
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
5 o  X1 `1 h. x' b3 d7 R            }
' Z, s" R5 E) C9 A        }while(_findnext(hFile, &fileinfo)  == 0);
' J% N9 m- f# _8 R4 l        _findclose(hFile);
, J5 e5 ?8 ~" j4 i' Q: @. o    }: u2 ^5 G* E: u: X3 K
}+ V; N  k0 A% ^, w( ^7 ?
[/mw_shl_code]
0 F# y) `2 [  U& b1 p! a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了