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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
, ~+ j. f; j3 }" `. r4 N1 l1 L
[mw_shl_code=cpp,true]#include <string>! d/ R# V& W! S% y: b" k$ X/ S5 i
#include <io.h>6 U& L( k( s) _* s* }
#include <vector>
) G+ W0 c0 j, w, f8 k. F' I#include <iostream>
8 ~; k, L4 Z$ a7 G4 C6 d) ^#include <fstream>% i2 Y3 K" P3 s8 b6 u6 Y
using namespace std;3 W( S( ]) H" Q+ A) ^
1 g  a0 ?2 x8 r
         0 K0 y2 }  M4 [/ j: ]. ~( V! i
/************************************************************************/1 d1 q# V/ s* [' _% c2 B! h9 A4 [0 M
/*  获取文件夹下所有文件名4 }" r2 s9 u2 F; Q4 U
    输入:     
; P- V$ |4 C2 t. o( u9 o        path    :   文件夹路径
( q5 e- i0 Q( V  E9 Y4 _        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有7 a* \: E5 I, X9 t
                    文件名, exd = ".jt"
8 O; U! C) v+ B  M/ y  j    输出:
  o( H* A3 X/ u: S6 T5 e0 `5 h        files   :   获取的文件名列表 含有路径6 l, n5 w/ n6 `' F( F' f
*/$ s: X9 o9 V9 R3 C
/************************************************************************/
( L1 d* f  Y1 [9 `3 C2 e6 Y2 _6 r' \' o; J
void CONFIG_getFiles( string path, string exd, vector<string>& files )
! ^0 F5 t& N* }) o+ {1 r{
  ]) e2 |  l9 g: P& D        //文件句柄$ V% m7 P% l( s$ }) g2 e- t/ i$ o
    long   hFile   =   0;3 e3 J" g' W" g0 X6 U/ E
    //文件信息
8 M+ e5 j( L7 N; q$ X    struct _finddata_t fileinfo;
) s/ J; b6 t3 C& [* \; {9 s    string pathName, exdName;
. [& k% x: W* x2 s! G0 y: F8 {5 }6 [- o2 h
     string p;5 j$ C! B; @1 V4 E3 x& P9 ?" P0 q
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)+ R( U( o, K* R- U
    {& t/ r. J9 m/ U1 g; R/ X
        do$ W: D/ }6 g$ ^% ^8 B1 Y6 y
        {
+ v/ S, q8 A, R; `            //如果是文件夹中仍有文件夹,迭代之* ?) J1 ~; u1 B+ W: s/ x( z( [( M* ^
            //如果不是,加入列表7 J7 Z$ S6 E  u2 z
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句6 v* s2 k0 V' O  \
           if((fileinfo.attrib &  _A_SUBDIR))
7 Z* T! y: T- i! r6 R            {
* P1 L4 w& [2 K( A6 J/ _* T" o                               
/ \1 k: Q$ M* u+ B0 U( T7 l              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
" A/ B( V0 Q5 @0 U: a6 _  u: R/ O                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );% S/ y- \' ~: G  u& r

9 G$ @7 b4 `0 z. y- \  f5 V            }8 c6 y5 F& k. l% ^4 `( t
            else $ e; p: z+ `! E+ c7 _1 y
            {' ~6 v2 r( \3 z+ i% s
                                if (strstr(fileinfo.name,exd.c_str()))6 ~  }' }3 Z8 @( @
                                {. N1 e1 W" T* }
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
" s9 [$ \" I" j                                }
) Y. I9 H# K4 l6 \% J, H, a! k0 T3 ?: G0 }. A+ z* e% p, ]" H
                    //如果使用
' I% ^% G1 J: I: m& Z# m3 t! n                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
2 t- r; B( h: E1 h3 @            }
# `3 L1 y5 j) {/ [        }while(_findnext(hFile, &fileinfo)  == 0);3 n2 H2 v* V# f* n4 A8 U+ {
        _findclose(hFile);
+ f* I, Z; @4 A6 L    }  I1 c. S7 Y5 o3 h5 }; n: f
}
3 }& ]' d) i9 q/ c1 C[/mw_shl_code]! Y/ m& i* f. \' r1 M+ W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了