栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

win C++,在当前路径下,获取文件夹名 | 获取所有文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

win C++,在当前路径下,获取文件夹名 | 获取所有文件

代码比较通用,记录下防走失。

环境:win10, VS2019, MSVC/14.29.30133


仅获取当前文件夹下的所有文件夹名,不递归到子文件夹内获取文件夹名。

#include 
#include 

std::vector getDirs(std::string dir) {
    std::vector folders;
    intptr_t  hFile;//用于查找的句柄
    struct _finddata_t fileinfo;//文件信息的结构体
    //第一次查找/*不可缺
    hFile = _findfirst(dir.append("/*").c_str(), &fileinfo);

    printf("%sn", fileinfo.name); //打印出找到的文件的文件名
    while (0 == _findnext(hFile, &fileinfo))//循环查找其他文件夹
    {
        if ((fileinfo.attrib & _A_SUBDIR))
        {
            if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
                folders.push_back(fileinfo.name);
        }
    }
    _findclose(hFile);//别忘了关闭句柄
    return folders;
}
int main(){
    std::string test_dir = "D:";
    std::vector files_n = getDirs(test_dir);
    return 0;
}

获取当前文件夹下的所有文件,返回文件完整路径。递归到子文件夹中查找文件。

#include 
#include 

void getAllFiles(std::string path, std::vector& files)
{
    //文件句柄  
    intptr_t   hFile = 0;
    //文件信息  
    struct _finddata_t fileinfo;
    std::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)
                    getAllFiles(p.assign(path).append("/").append(fileinfo.name), files);
            }
            else
            {
                files.push_back(p.assign(path).append("/").append(fileinfo.name));
            }
        } while (_findnext(hFile, &fileinfo) == 0);
        _findclose(hFile);
    }
}
int main(){
    std::string test_dir = "D:";
    getFiles(test_dir, files_n);
    return 0;
}

参考资料:

1. _finddata_t结构体用法

2.  _findnext 报错

3.  C++实现读取特定路径下文件夹及文件名的方法

4.  C++获取指定目录下的所有文件和文件夹

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013341.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号