广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C/C++怎么获取路径下所有文件及其子目录的文件名
  • 443
分享到

C/C++怎么获取路径下所有文件及其子目录的文件名

2023-07-05 11:07:19 443人浏览 泡泡鱼
摘要

这篇文章主要介绍了C/C++怎么获取路径下所有文件及其子目录的文件名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C/c++怎么获取路径下所有文件及其子目录的文件名文章都会有所收获,下面我们一起来看看吧。一、功

这篇文章主要介绍了C/C++怎么获取路径下所有文件及其子目录的文件名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C/c++怎么获取路径下所有文件及其子目录的文件名文章都会有所收获,下面我们一起来看看吧。

一、功能描述

需要提取某个文件夹下所有文件名字,当包含子目录时,将子目录及其路径获取到。

二、实现方式

使用C语言的opendir函数

  DIR* dp;  struct dirent* dirp;  if ((dp = opendir(sdir.c_str())) != NULL) {      dirp = readdir(dp)  }

通过readir读取到的dirp中包含的d_type具有如下类型及其含义:

enum  {    DT_UNKNOWN = 0,# define DT_UNKNOWN    DT_UNKNOWN    DT_FIFO = 1,# define DT_FIFO    DT_FIFO    DT_CHR = 2,# define DT_CHR        DT_CHR    DT_DIR = 4,# define DT_DIR        DT_DIR    DT_BLK = 6,# define DT_BLK        DT_BLK    DT_REG = 8,# define DT_REG        DT_REG    DT_LNK = 10,# define DT_LNK        DT_LNK    DT_SOCK = 12,# define DT_SOCK    DT_SOCK    DT_WHT = 14# define DT_WHT        DT_WHT  };

参考官方文档可知

DT_UNKNOWN ¶
The type is unknown. Only some filesystems have full support to return the type of the file, others might always return this value.
未知类型
DT_REG
A regular file. 常规文件
DT_DIR
A directory. 目录

DT_FIFO
A named pipe, or FIFO. See FIFO Special Files.

DT_SOCK
A local-domain Socket. 套接字文件

DT_CHR
A character device. 字符设备

DT_BLK
A block device. 块设备,比如挂载的硬盘之类

DT_LNK
A symbolic link. 链接文件

三、代码实现

通过递归的方式,获取该目录及其子目录下的所有文件及其路径名

#include <dirent.h>#include <vector>std::vector<std::string> GetFiles(const std::string& sdir = ".",                                  bool bsubdir = true) {  DIR* dp;  struct dirent* dirp;  std::vector<std::string> filenames;  if ((dp = opendir(sdir.c_str())) != NULL) {    while ((dirp = readdir(dp)) != NULL) {      if (strcmp(".", dirp->d_name) == 0 || strcmp("..", dirp->d_name) == 0)        continue;      if (dirp->d_type != DT_DIR)        filenames.push_back(sdir + "/" + dirp->d_name);      if (bsubdir && dirp->d_type == DT_DIR) {        std::vector<std::string> names = GetFiles(sdir + "/" + dirp->d_name);        filenames.insert(filenames.begin(), names.begin(), names.end());      }    }  }  closedir(dp);  return filenames;}

关于“C/C++怎么获取路径下所有文件及其子目录的文件名”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“C/C++怎么获取路径下所有文件及其子目录的文件名”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C/C++怎么获取路径下所有文件及其子目录的文件名

本文链接: https://www.lsjlt.com/news/351609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C/C++怎么获取路径下所有文件及其子目录的文件名
    这篇文章主要介绍了C/C++怎么获取路径下所有文件及其子目录的文件名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C/C++怎么获取路径下所有文件及其子目录的文件名文章都会有所收获,下面我们一起来看看吧。一、功...
    99+
    2023-07-05
  • 详解C/C++如何获取路径下所有文件及其子目录的文件名
    目录一、功能描述二、实现方式三、代码实现一、功能描述 需要提取某个文件夹下所有文件名字,当包含子目录时,将子目录及其路径获取到。 二、实现方式 使用C语言的opendir函数 D...
    99+
    2023-03-14
    C++获取路径下文件文件名 C++获取文件文件名 C++获取文件名
  • java 用递归获取一个目录下的所有文件路径的小例子
    复制代码 代码如下:private List<String> ergodic(File file,List<String> resultFileName){&...
    99+
    2022-11-15
    递归 目录 文件路径
  • jspXCMS怎么获取栏目及其子栏目下所有的文章
    本文小编为大家详细介绍“jspXCMS怎么获取栏目及其子栏目下所有的文章”,内容详细,步骤清晰,细节处理妥当,希望这篇“jspXCMS怎么获取栏目及其子栏目下所有的文章”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-26
  • C++遍历某个文件夹下面的子文件夹及其所有文件
    方法一 下面是输出当前目录下的所有文件夹以及文件的绝对路径(当然也可以是相对路径,由输入的路径决定),下面的函数接口可以改装为单输出文件或者文件夹的接口,这是一个大方面的总接口。 ...
    99+
    2022-11-12
  • java怎么读取目录下所有文件名
    要读取目录下的所有文件名,可以使用Java的File类和递归方法来实现。以下是一个示例代码:```javaimport java.i...
    99+
    2023-08-19
    java
  • linux Shell获取某目录下所有文件夹的名称
    查看目录下面的所有文件: #!/bin/bash cd /目标目录 for file in $(ls *) do echo $file done 延伸的方法,查看目录下面的所有目录 #!/bi...
    99+
    2022-06-04
    文件夹 名称 目录下
  • C++如何遍历某个文件夹下面的子文件夹及其所有文件
    这篇文章主要介绍了C++如何遍历某个文件夹下面的子文件夹及其所有文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。方法一下面是输出当前目录下的所有文件夹以及文件的绝对路径(当...
    99+
    2023-06-20
  • C#怎么获取指定目录下指定文件
    这篇文章主要介绍“C#怎么获取指定目录下指定文件”,在日常操作中,相信很多人在C#怎么获取指定目录下指定文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#怎么获取指定目录下指定文件”的疑惑有所帮助!接下来...
    99+
    2023-06-30
  • VBS中怎么获取当前目录下所有文件夹名字
    VBS中怎么获取当前目录下所有文件夹名字,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。VBS获取当前目录下所有文件夹名字,不包括子文件夹。我要给每个文件夹进行操作,所以最好用循...
    99+
    2023-06-08
  • Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
    实现代码一: var fs = require('fs') var path = require('path') var copyFile = function(srcPath, tarPath, ...
    99+
    2022-06-04
    递归 文件夹 文件
  • Python中获取指定目录下所有文件名的方法
    在《Python中文件名和路径的操作》中提到,os模块中的函数可以对文件进行操作。通过递归以及os模块中提供的函数,可以获取指定目录下所有的文件名。 1 基本流程 通过递归获取指定目录下所有文件名的基本流程,如图1所示。 图1 基本流程 ...
    99+
    2023-09-01
    python 显示所有文件名 递归 os 处理文件
  • 使用Shell怎么遍历目录及其子目录中的所有文件
    本篇文章给大家分享的是有关使用Shell怎么遍历目录及其子目录中的所有文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。新建一个shell文件$ vi tr...
    99+
    2023-06-09
  • 怎么使用Golang递归获取目录下所有文件
    这篇文章主要讲解了“怎么使用Golang递归获取目录下所有文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Golang递归获取目录下所有文件”吧!1.问题如果我想获取一个目录下的所...
    99+
    2023-07-05
  • linux Shell如何获取某目录下所有文件夹的名称
    这篇文章主要为大家展示了“linux Shell如何获取某目录下所有文件夹的名称”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux Shell如何获取某目录下所有文件夹的名称”这篇文章吧。...
    99+
    2023-06-09
  • nodejs如何获取指定路径下所有的文件夹名或类型
    目录获取指定路径下所有的文件夹名或类型nodejs文件操作文件操作文件夹操作获取指定路径下所有的文件夹名或类型 let components = [] const files = f...
    99+
    2022-11-13
  • C++怎么用libcurl获取下载文件名称及大小
    今天小编给大家分享一下C++怎么用libcurl获取下载文件名称及大小的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。显示效果...
    99+
    2023-07-05
  • shell获取目录下所有文件夹的名称并输出的实例
    获取指定目录/usr/下所有文件夹的名称并输出: shell代码: #!/bin/bash #方法一 dir=$(ls -l /usr/ |awk '/^d/ {print $pgUMgOQNF}') for i ...
    99+
    2022-06-04
    shell 文件夹 名称
  • Java怎么实现读取resources目录下的文件路径
    本篇内容主要讲解“Java怎么实现读取resources目录下的文件路径”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java怎么实现读取resources目录下的文件路径”吧!打印文件的方法如...
    99+
    2023-06-29
  • shell如何获取目录下所有文件夹的名称并输出的实例
    这篇文章将为大家详细讲解有关shell如何获取目录下所有文件夹的名称并输出的实例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。获取指定目录/usr/下所有文件夹的名称并输出:shell代码:#!/bin/...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作