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

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

[复制链接]

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

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

admin 楼主

2020-3-4 21:04:15

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

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

x
9 k8 J- \6 F! o
[mw_shl_code=cpp,true]#include <string>
$ x- L" n4 O4 t" N! f3 J6 b#include <io.h>
& Y5 U! J, z6 S9 ~& v#include <vector>9 E3 h2 j, B9 C, [; ~% S5 ~4 D
#include <iostream>
& G' Y: N/ [/ z0 ^#include <fstream>
8 g3 s( E7 O# [  n0 U/ {using namespace std;% c/ C5 A3 t& H1 c" @" T) w

0 H! _+ X4 O! ~) E, S         
: v4 c/ d2 Q) ?" U- R- D0 ^/ A- T' S/************************************************************************/" `& r, R, ]  t& Z7 z- J- K. Y
/*  获取文件夹下所有文件名7 l6 m# n! N$ [4 L# K: k3 [" j4 y
    输入:     4 q6 _5 s3 X3 K5 P; }( T/ T
        path    :   文件夹路径
5 F8 \/ G7 V* u/ W( }3 x        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有5 A1 z0 G6 d4 w, E" y; v! X8 i
                    文件名, exd = ".jt"2 z/ S! v5 I' N$ i9 I4 N, I# d
    输出:
* U+ k4 C2 u; t  X+ L7 b* W2 n# Q        files   :   获取的文件名列表 含有路径: `( e+ @1 R" o* A- K* C
*/
" ~- |# a. d# K* k9 t/************************************************************************/' U9 A' P4 ^0 U& F8 y. P$ y" q8 [5 K
) E7 Z: N" G9 L
void CONFIG_getFiles( string path, string exd, vector<string>& files )' w/ B, Z7 Y3 [; ?( h
{
4 N, T% d& \2 V( T0 {; W        //文件句柄
( z) U( i( J$ T1 y% f4 g* n    long   hFile   =   0;5 X2 T& a! e8 Z! ?
    //文件信息
. ]: q" V/ }7 x& R( s3 X9 ^( M; y    struct _finddata_t fileinfo;% F8 y& w: @9 S
    string pathName, exdName;* {1 a. p7 _& \2 `  T1 n
5 I& N1 o  d/ \, n
     string p;
% F4 y8 H- ^# J" [        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
0 ?6 i* l# B1 Q7 F    {
! S3 ^+ r( z* i, U        do
: i6 Q; Z8 y' E% ]        {% m5 M8 D5 [) u$ z' p
            //如果是文件夹中仍有文件夹,迭代之
7 r, n8 q5 z# L/ ~            //如果不是,加入列表& E# k6 v& s! O3 }
            // 不推荐使用,硬要使用的话,需要修改else 里面的语句  t+ ?7 h1 u9 H; I
           if((fileinfo.attrib &  _A_SUBDIR))- ]0 @3 @& X0 R2 C# z8 K; M& o
            {' P- Z5 D9 m$ d: K0 Y
                                0 S! o4 c4 h" \$ j6 G+ F
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)! v/ ?  s) X- k% c
                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );% o2 d% }0 a) @. {' R

2 ^! Q! U% R6 Q% S            }4 c2 U; b+ j( V  x
            else $ N0 a* T. U5 J; E: w5 F. C' U% D
            {$ A0 B4 T) `0 U% z) T4 ^
                                if (strstr(fileinfo.name,exd.c_str()))$ l1 b; a: P3 c2 v- C6 V+ g, y& D6 m
                                {
3 B4 G, s- K2 Q                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句9 T9 k6 }( {$ ]9 r$ d; L! b
                                }- Q# a* o& U9 i7 h* ^! y

9 y$ q3 w  l3 I6 _  I/ w0 V# c' t                    //如果使用
, a* D9 [% P; q. i/ K                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
# U5 O  o, w! r9 j9 E7 y            }) y6 [2 Q* M" X8 W" I7 Z: l
        }while(_findnext(hFile, &fileinfo)  == 0);0 U/ V6 B! H0 e: k# e% W
        _findclose(hFile);
& z" r) r6 R) y5 s; s" i5 a  I9 i1 Q    }: A3 \, j' m0 f* c* [1 L& R
}
8 ?  ]8 g' K$ d1 Q& a2 _3 d[/mw_shl_code]% P# O7 B* ~) 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二次开发专题模块培训报名开始啦

    我知道了