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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x

8 a4 b1 d1 O0 t# ]- Z' C[mw_shl_code=cpp,true]#include <string>
' S" j; x3 I$ o  E: `, `, f#include <io.h>2 _* F( C- O& n4 t
#include <vector>
9 i8 {9 L- U& m  E' I* G2 }: Y#include <iostream>
/ @4 d; h3 u6 A#include <fstream>
7 Q; Z' x' _+ u$ u) o# ?# d$ C" w) iusing namespace std;2 V5 ~/ R1 n& X1 k
9 R' V% ^/ f7 o2 R$ i5 J
         3 I0 R7 W' G' p9 V/ E  @
/************************************************************************/: H' h: ~7 j/ X- U! V8 K1 l" a
/*  获取文件夹下所有文件名% g, j1 ]! B# R$ R. z; C- p# Q2 K; {
    输入:     
8 Q" C8 B" D8 w, Q        path    :   文件夹路径
, k1 }7 s( i/ k- J( o# t/ ]        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
+ B& {, B6 H, `: u                    文件名, exd = ".jt"
) T. d# D6 S; W; I1 {4 S* T    输出:
% i( v  `& [( c7 d- x& m$ ?        files   :   获取的文件名列表 含有路径
1 Q4 I/ L  \0 e# [+ c/ |0 }*/) V9 B7 f: Y4 i+ [/ z7 ?  V
/************************************************************************/
+ q4 j8 h! w$ n" K4 f4 @7 e3 k6 l: [4 J/ f; E9 ^, D8 @5 p: y# L
void CONFIG_getFiles( string path, string exd, vector<string>& files )
7 s; L! @* e6 Q2 Q/ q) j{, b* O% T6 a' r0 o+ G" S: c
        //文件句柄
2 p" M# a* O; [: g    long   hFile   =   0;$ B  n/ s' J1 k% \9 s
    //文件信息7 Z  W* Q( f' H. `- y/ }
    struct _finddata_t fileinfo;3 _0 o! N6 i/ M7 e3 k" g1 n; H
    string pathName, exdName;/ N, R& T8 @; g8 p+ @4 q

/ s( |5 f* F1 y1 K8 `     string p;
6 o& |/ s! E% d5 t3 A        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)$ G, U1 Y# Q8 V5 s( {& o
    {- Y$ G) m3 a+ _8 n" e0 P! \
        do, r; |2 v% J; H/ k* y
        {! z3 ]; }+ g) i  R
            //如果是文件夹中仍有文件夹,迭代之
* L$ D# T/ W5 J            //如果不是,加入列表5 e; f; J& N' A# Y( r. r+ h$ z0 |
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
& `* K4 ^( z+ j4 W- [           if((fileinfo.attrib &  _A_SUBDIR))
" U& F# V* {3 l9 O            {& T% A/ ^( i4 a9 d& D
                                : ~9 s. _* e: h
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
* N9 _% S; M: ^" F( ^" [                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );1 V. @# E0 E3 ]* O; i/ \6 K3 \

3 F  T; r8 r$ Z. u            }0 V% R0 l9 ^1 @: c8 p
            else
. b; U3 m6 |+ N            {
2 }1 u& H. ?% x0 a# T9 h" O- W                                if (strstr(fileinfo.name,exd.c_str()))
/ z8 T8 ^7 X% \3 A7 C4 B1 a                                {
( I% c1 u) G) [5 A' L5 K                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
$ r4 g. z' }* J5 J                                }
4 u9 i4 W! ^9 h7 `* o% t3 [  S" c' \, Y' }# M2 Y! ?/ c8 @2 Q+ H
                    //如果使用9 l1 R* ~% A  ~* [# X2 u- {% Z5 v
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句- J$ D' e8 ^$ |4 v. c8 g
            }" A( c+ A& E( O4 E" A) |3 u/ }7 s
        }while(_findnext(hFile, &fileinfo)  == 0);# S7 K3 K0 v2 Q9 p1 a, G" G
        _findclose(hFile);
2 K2 f3 a+ F. b6 ]) B3 z6 ^/ _    }
- B% c+ z- S1 e5 `7 W}
9 {3 B  t7 k, q+ K$ e' i+ X[/mw_shl_code]
: t! U2 M" L$ I0 Q0 H
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了