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

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

[复制链接]

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

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

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

x

* y9 L5 o$ _( k+ G+ h[mw_shl_code=cpp,true]#include <string>/ Q. E2 @! H- M# u' }( b8 v* ^
#include <io.h>
- L' C' x4 g% n6 u1 Z#include <vector>
& @% Y# @$ a: D% b- }# ^% y#include <iostream>; t. q5 r* H2 G) K
#include <fstream>6 J8 K% _6 N# N6 e
using namespace std;9 S1 n) {- {1 e( U
2 c2 k: ^# S0 ^' A! \4 }
         
  |6 T6 _( d* q- v& d9 D3 b/************************************************************************/
( d; M3 s3 F/ C* u( ]/*  获取文件夹下所有文件名
9 f, g& f2 y2 J( I, P# ]0 G& F- w    输入:     
% T' h  F, j) R* C( d6 k* u        path    :   文件夹路径
; w" V" d* z$ V1 i; b2 d& o0 K        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有
, Q  f7 l: u. m, b( j                    文件名, exd = ".jt"# o% m. {6 [6 B' _$ c' w0 x
    输出:
% ?6 B) m7 U8 a1 X        files   :   获取的文件名列表 含有路径" J, M  g- T4 A1 l  y8 _3 W
*/& ^- C. w( l7 Y0 a
/************************************************************************/& X" `& t* e$ v. @) y* q3 c

) a' q. H7 r0 s2 ?; h7 O" ]5 {5 avoid CONFIG_getFiles( string path, string exd, vector<string>& files )# P: q+ \3 e+ X
{
8 e  N% O7 y% \( A3 v        //文件句柄
! s) j1 b& q1 K3 M    long   hFile   =   0;
+ F& B. P7 N( Q# x+ \0 E    //文件信息1 t; b/ o+ P4 L
    struct _finddata_t fileinfo;
! Z. o6 ]+ Z. K( C) X. u9 s7 v0 i5 J: X    string pathName, exdName;) Q8 b8 `' Q! u" Y, k! ^

4 Q+ r( O+ y1 V6 s% D$ B& N     string p;) a7 @3 {4 o9 S% \2 p) w
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
6 c& \' J0 {& p$ ?, n! n0 g    {
6 K5 o0 w. Q: ~4 W7 C1 ^  L. t        do
9 `  j2 i* Y. {& Y/ [: V        {0 Y( E# s) y: j9 U- p
            //如果是文件夹中仍有文件夹,迭代之
- D  q1 Z, u& Z! Y( ]            //如果不是,加入列表
1 _1 b- @- M6 s            // 不推荐使用,硬要使用的话,需要修改else 里面的语句) a  W; ^: j2 l- T0 S
           if((fileinfo.attrib &  _A_SUBDIR))
' T4 F! i. h% Z3 `            {
) W& q" J" I8 X3 v7 p                               
  O9 }( h; k6 d/ f5 Q0 ?% R              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)" @8 L) ]  Q+ _2 Z) Q& T/ z
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );" [! k% ^  _4 Y& }
  }0 l2 ?: x7 B. ?4 d7 W2 L
            }) l3 O6 u& d7 r5 g6 Z8 O3 L
            else " ]$ u- H/ Y7 G4 }! I% @
            {
4 ~- `, J+ i0 H! C  F, i  Z. v                                if (strstr(fileinfo.name,exd.c_str()))
# q" l& ?$ n1 U, N5 V, f                                {
% q+ t, k& L7 g% M                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句& i) D! R7 x* o3 r, A
                                }
+ t) u5 ]" h$ R, V- U% d. P0 h; g/ a- @/ [( O0 Q+ n
                    //如果使用3 Z6 o+ j2 w8 E% _6 r; x" C$ o/ L6 z
                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句8 U0 Z( C0 p# N* M
            }
$ n/ m5 [& k8 W4 a( W6 Y: {        }while(_findnext(hFile, &fileinfo)  == 0);8 i" e  \0 k! _7 i- q. _) p$ B
        _findclose(hFile);6 U5 `3 N9 _" g  X- g+ O- ]
    }% A. q0 `& X9 G9 n  f% T, e
}# z# D  T" A8 l8 c, S, R5 U
[/mw_shl_code]) H1 T* N% H" ]9 t/ V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了