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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
  L9 F- Y- o" @
[mw_shl_code=cpp,true]#include <string>
; B0 e5 w) _; K$ r#include <io.h>
0 @% _6 G. t+ A' r' ], A. x#include <vector>
+ F3 m7 K  F  E& z1 |# W/ X#include <iostream>
& U1 ~; g. V# L! l. S+ I#include <fstream>' K& _  T1 L$ B! O7 V3 j) y
using namespace std;
2 F9 X1 W+ w( l1 Q/ O5 }3 i" a% ^
9 |* O- F2 z' L8 i$ B* Q         
; K" R: U6 [9 z! T6 X/************************************************************************/
- S* n+ ^& k5 z; {8 \) N/*  获取文件夹下所有文件名
4 |1 k0 N' T$ h: \2 ?9 J7 o& T+ N    输入:     
, e& z7 K1 `9 u$ _9 R        path    :   文件夹路径6 K( U& k/ R! F& Z( ^
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
/ w& h1 A, M5 j6 b1 g3 Z$ s5 r                    文件名, exd = ".jt"
, g7 U- @8 B, T/ p    输出:2 e# y7 k, P0 i4 w
        files   :   获取的文件名列表 含有路径
# J# E+ e" o3 }# R1 s*/
- @1 [4 ?+ A% ?/************************************************************************/
' R' N: m$ k2 c. I+ [
* u1 X, Y2 H1 z6 Evoid CONFIG_getFiles( string path, string exd, vector<string>& files ): `" |/ C/ ]- L% |2 e
{
" ?( p  p: `( [& o        //文件句柄/ O" T& M3 w( Z
    long   hFile   =   0;* P" o! Z0 P1 O$ p  p
    //文件信息
  w' h$ g! A3 L. n* v    struct _finddata_t fileinfo;" C# B5 r7 P+ L
    string pathName, exdName;
% W- }  u2 {# k8 b  E9 _* f8 D$ W3 c6 u2 d8 j7 [6 Y9 F  i  s+ `- ]( M
     string p;
4 S, B/ G3 h0 n        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
( c1 O2 M0 J" a- K' B* f1 b1 |    {
9 |$ H  O& _5 s4 Q        do5 @: `1 x1 b$ G8 u$ H1 m3 Q
        {1 d+ H3 Q5 r$ s, M
            //如果是文件夹中仍有文件夹,迭代之
% i, ?7 g* p7 S, K- N/ T            //如果不是,加入列表5 C% D2 g! T3 a
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句7 L5 w, i- S& {, T' B" P4 P
           if((fileinfo.attrib &  _A_SUBDIR))) j5 ^" i# p" ^" Z" u
            {% y4 f4 `, y7 {* {( @
                                5 O! b5 J% Q6 a% j0 c
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
; ^. y8 @: O/ l3 M! R" B                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );5 f: ]' s# X" G$ h
0 \9 m: |5 |, B
            }
; V* _+ P, v' K( o5 o9 ]5 G( a8 R            else
7 F  R2 F# t: F7 ]) @+ d* ~/ [            {0 H3 Z1 g% a) u
                                if (strstr(fileinfo.name,exd.c_str()))6 _/ o2 Z3 g: E0 O, k, D
                                {% j5 L" ]# d( O
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句- Z( @) W9 K) k7 y$ O: G+ ]$ i
                                }" ?! t; |3 M* e: A3 ]) W' P

( v8 f( f1 z% ~7 Q' w                    //如果使用
+ N# ?" V8 b( O. f2 \7 ^                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句7 g5 {8 k: s# @2 }9 [) b: K% M
            }
, P# V' }; ]. C+ L4 M% d        }while(_findnext(hFile, &fileinfo)  == 0);0 @9 c. R3 [9 t1 X3 K0 i; O
        _findclose(hFile);
1 ^# [5 y! Q, R; l# _+ ~. Z    }
/ [4 ?% f+ s, l5 `: w# R8 I}
; b# _( o( ^" f9 y; z( f[/mw_shl_code]+ k0 h3 ~8 L. y3 P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了