PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x

( |1 ~4 G0 U" V- b) B* F) T2 X/ Q# ^[mw_shl_code=cpp,true]#include <string>) U. Y) g3 R" O1 z
#include <io.h>
( }, {8 {+ N/ n: l& e6 y* Z#include <vector>
2 y, |4 ~- D1 B8 {#include <iostream>
2 D9 K5 n+ R# f, C2 r* K#include <fstream>' x- ~8 J8 f% O) Z, C% e8 n2 U/ s
using namespace std;
3 ]+ n+ r9 d7 U- L- C! x: u1 ^% }8 f2 L' P# x
         5 |5 u+ `/ I7 }) e; ^
/************************************************************************/. q: P# H4 }6 ^6 v# ^) c; c& }0 w! v
/*  获取文件夹下所有文件名
6 n% t# g/ x+ B# P7 L# @8 R& e+ q4 \    输入:     
; @* g+ W# e6 P2 ~        path    :   文件夹路径0 i) \5 ^9 j# r
        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有( B; T  |9 z' p1 y5 q6 X
                    文件名, exd = ".jt"$ @5 @/ G0 q' e4 G9 e& v0 c
    输出:
  A. r" ^: R8 g% {& P* S5 ]0 v        files   :   获取的文件名列表 含有路径. r' E' ]5 J; O' v, A0 p6 l
*/; w4 p8 w( \' v
/************************************************************************/% v; A# O9 Q& B- l6 [3 u& ?3 E3 d6 G
  S. ^6 k. K1 U; Q) R
void CONFIG_getFiles( string path, string exd, vector<string>& files )5 e: u9 N: Q2 ]: A/ x  z% D" o
{3 O5 s5 W0 a$ S2 p( Z  k" s
        //文件句柄
+ O2 q# ]6 v# _4 M) L1 S    long   hFile   =   0;- u% j. j: j0 F
    //文件信息' f+ f, ~# W- y6 d: @+ {
    struct _finddata_t fileinfo;8 v" Y8 U* r1 N# H! r
    string pathName, exdName;% o, e/ a! u9 Q' _: o3 N
; V& \+ m) J/ L9 @
     string p;  x9 }7 v/ O% v% }5 l& e' @
        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)2 ^, M! a, |% R! T/ _% q
    {1 p2 Y1 W; Q% R; }8 K4 b# ?% a
        do
0 c7 i2 n' a' n        {
& N: ?7 `; O) V# A0 ?5 q% S  @+ X            //如果是文件夹中仍有文件夹,迭代之$ f' p9 \; `  X
            //如果不是,加入列表
* s0 m( P0 I9 V            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
* a* N! j7 Z5 Q; Y4 G. l           if((fileinfo.attrib &  _A_SUBDIR)). Y% ~) q% A) `( k, J3 ^/ {
            {3 t; F( ~7 c- O9 t
                                & d- p7 S1 {1 [0 H
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
1 {2 y' d6 W: }( z                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );7 ]% b  H7 L3 z. q) {5 f
( j3 L6 r6 r1 I
            }
& U" N* @* ~. @4 D- Q            else
9 B; D$ C) E2 M/ k6 S/ W            {
9 p" z4 e/ G0 t0 h, g6 n                                if (strstr(fileinfo.name,exd.c_str()))6 ?0 `0 [# o; K2 |* h$ t
                                {. b5 C8 u2 c; {6 w4 T/ i$ ^
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
4 H8 N4 l8 h; H' g                                }0 i4 T% y& x" _' A+ O# K/ _4 h) w

$ L$ N% S; P1 o4 S. z' W                    //如果使用
* S7 [! g+ {2 ~8 t0 k! _5 Z! ^                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句6 O8 J" @7 v9 f# }% A* a& b  |2 t
            }
9 z# s9 Z# x+ P7 O- f        }while(_findnext(hFile, &fileinfo)  == 0);
% u1 k) H8 S7 V3 i        _findclose(hFile);7 j# X& r5 G3 a. W
    }
6 i- `% C( `9 m) G. R}6 u& g& h4 d: x; Z' I
[/mw_shl_code]
0 ]8 Z; T$ U0 C; b2 M5 y' u2 C9 R
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了