linqy的个人博客分享 http://blog.sciencenet.cn/u/linqy

博文

获取某文件夹下的全部文件名称和文件的绝对路径

已有 3714 次阅读 2018-1-10 16:06 |个人分类:C++|系统分类:科研笔记| 获取文件路径, 名称

获取某文件夹下得文件名称对于文件的处理来说非常重要下面给出了在给出文件夹的路径之后返回文件夹下的所有文件的绝对路径文件的名字C++代码,供使用者参考。


#include <iostream>

#include <vector>

#include <io.h>


using namespace std;

void GetFiles(string path, vector<string>& files, vector<string> &ownname);

 

void main(){

string filespath = "C:\\Users\\linqy\\Desktop\\新建文件夹";

vector<string> files,filenames;

GetFiles(filespath,files,filenames);

cout<<"已完成!"<<endl;


}

void GetFiles(string path, vector<string>& files, vector<string> &ownname)  

{  

    /*files存储文件的路径及名称(eg.   C:\Users\WUQP\Desktop\test_devided\data1.txt)

     ownname只存储文件的名称(eg.     data1.txt)*/

   

    //文件句柄  

    long   hFile = 0;  

    //文件信息  

    struct _finddata_t fileinfo;  

    string p;  

    if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)  

    {  

        do  

        {  

            //如果是目录,迭代之;如果不是,加入列表  

            if((fileinfo.attrib &  _A_SUBDIR))  

            {  

                if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)  

                    GetFiles( p.assign(path).append("\\").append(fileinfo.name), files, ownname );

            }  

            else  

            {  

                files.push_back(p.assign(path).append("\\").append(fileinfo.name) );  

                ownname.push_back(fileinfo.name);

            }  

        }while(_findnext(hFile, &fileinfo)  == 0);  

        _findclose(hFile);  

    }  

}





https://blog.sciencenet.cn/blog-3134052-1094144.html

上一篇:运行是去掉控制台黑框办法
下一篇:char*与System::String^的相互转换
收藏 IP: 125.35.116.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 15:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部