查看: 1820|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

积分
82265
QQ
发表于 2020-3-4 21:04:15 | 显示全部楼层 |阅读模式

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

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

×
! O' Q" Y) M" K, M4 c
[mw_shl_code=cpp,true]#include <string>7 m5 \; }* n3 f. ?2 `+ X2 A+ ?
#include <io.h>
6 @) _! I( N1 N; e. @0 ]( @2 d( R: H: u#include <vector>( q% F7 Y: D- c$ a* U3 @
#include <iostream># M+ ?- @- w( O7 F+ e6 w
#include <fstream>
4 P8 w* c  p% z9 n" M' w9 [using namespace std;
3 q) Y7 F: |! n6 z9 [! E; ]
  B. ]1 L2 c7 a4 I5 Z8 K2 ]         
' G2 Z0 |5 I" y* o/************************************************************************/
' g1 f: @; D2 g/*  获取文件夹下所有文件名7 I& |+ j2 i/ r. O
    输入:     
9 x# e0 j9 f8 S, t0 S. ~        path    :   文件夹路径
* T) _2 X# M) T0 j. f+ W1 t9 ?        exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有$ k& B. f) h* M( t4 M
                    文件名, exd = ".jt"
) G4 p! [+ k' w7 O" t9 V    输出:7 Q! }" F* o. }
        files   :   获取的文件名列表 含有路径6 w9 z4 m' g1 x0 d( |. [* t6 D
*/
$ W! p3 G; {1 ?. H/************************************************************************/0 ?" E6 {  }* H/ M0 Z

( h( k: H% Z7 D8 ivoid CONFIG_getFiles( string path, string exd, vector<string>& files )
6 k* d' m/ x9 J7 Y( m{
2 Y9 q3 a( B+ A        //文件句柄
  }- ~8 [; c$ Q4 M" E    long   hFile   =   0;
1 A7 v9 n9 i2 u$ N7 z    //文件信息; \! i; [8 H! t# H& \
    struct _finddata_t fileinfo;
* E, |. Q3 u! l6 p- Q* V% `, q    string pathName, exdName;
2 a% h/ [. x. W$ Q" {! X( Y- }$ j- _# w5 f  a
     string p;
0 T  b* L' J+ k        if((hFile = _findfirst(pathName.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
2 y! E) V" n; ~* K' H& E7 N    {
2 ^& ^. n+ I" P: P  {9 f. J        do
( L6 C& c3 P7 F4 E/ S% s        {* x6 i2 h$ H- e, A& j, s
            //如果是文件夹中仍有文件夹,迭代之* n: ?& N! Z0 n4 T/ e0 Y
            //如果不是,加入列表
1 T* c$ e$ ^7 a8 Z            // 不推荐使用,硬要使用的话,需要修改else 里面的语句
9 E" B) I# U" {3 w' b/ j4 W! a! t& _           if((fileinfo.attrib &  _A_SUBDIR))
, ^/ N4 f1 w  \  e8 [7 G            {* }" Q+ F7 Z! u
                                " T& q# r9 ~* j: E0 x+ Z  s0 Q' L
              if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
8 [( b+ {" y/ R$ J/ j, M0 U                           CONFIG_getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );
6 D- Q; Z: U  \- E7 s7 I' n5 p; V' T
            }, A8 `8 f) A0 U) n4 Z1 g: e
            else . n3 b2 O+ o6 W4 _- e
            {
' z5 ^& l" J3 |) j7 N# ], w, p  v. e                                if (strstr(fileinfo.name,exd.c_str()))* Y) ^7 I" k" l0 a  ]* I
                                {$ e- w2 I. ]9 H3 g1 {4 s
                                         files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句
3 t' l9 d- |; ^! @3 C# T                                }% x  u4 R3 u' Z% p& N5 U! u
, g* T! v  \2 o  w. b
                    //如果使用
% N9 N0 F# [) Y4 h$ k+ A* A                  //  files.push_back(fileinfo.name); // 只要得到文件名字使用该语句
% L) S0 e. Y& d+ P1 f- b. S            }9 F' v: e2 t% x7 T1 e
        }while(_findnext(hFile, &fileinfo)  == 0);4 `; K& E2 U2 F) Z
        _findclose(hFile);
& P, b' M* @4 P. S# r    }
/ B7 M5 A$ |$ Q; X}7 o% K$ [  r0 i- G8 J: T
[/mw_shl_code]( {1 w% }. s8 L' a6 E9 ^! j" ]
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部