当前位置:  编程技术>c/c++/嵌入式

C/C++获取目录下的文件列表信息

    来源: 互联网  发布时间:2014-10-24

    本文导语:  1.数据结构 代码如下:struct dirent{    long d_ino;                 /* inode number 索引节点号 */    off_t d_off;                /* offset to this dirent 在目录文件中的偏移 */    unsigned short d_reclen;    /* length of this d_name 文...

1.数据结构

代码如下:

struct dirent
{
    long d_ino;                 /* inode number 索引节点号 */
    off_t d_off;                /* offset to this dirent 在目录文件中的偏移 */
    unsigned short d_reclen;    /* length of this d_name 文件名长 */
    unsigned char d_type;        /* the type of d_name 文件类型 */   
    char d_name [NAME_MAX+1];   /* file name (null-terminated) 文件名,最长255字符 */
}

struct __dirstream
  {
    void *__fd;                        /* `struct hurd_fd' pointer for descriptor.  */
    char *__data;                /* Directory block.  */
    int __entry_data;                /* Entry number `__data' corresponds to.  */
    char *__ptr;                /* Current pointer into the block.  */
    int __entry_ptr;                /* Entry number `__ptr' corresponds to.  */
    size_t __allocation;        /* Space allocated for the block.  */
    size_t __size;                /* Total valid data in the block.  */
    __libc_lock_define (, __lock) /* Mutex lock for this structure.  */
  };

typedef struct __dirstream DIR;

2.程序示例
其中程序中win不支持文件类型(d_type),可以根据文件名称后缀来判断文件类型;linux可以直接使用d_type判断是目录还是文件。

代码如下:

#include
#include
#include
#include

int main(){
    DIR    *dir;
    struct    dirent    *ptr;
    dir = opendir("."); ///open the dir

    while((ptr = readdir(dir)) != NULL) ///read the list of this dir
    {
        #ifdef _WIN32
            printf("d_name: %sn", ptr->d_name);
        #endif
        #ifdef __linux
            printf("d_type:%d d_name: %sn", ptr->d_type,ptr->d_name);
        #endif
    }
    closedir(dir);
    return 0;
}

程序输出:


    
 
 

您可能感兴趣的文章:

  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径
  • 怎样使用FTP递归获取文件夹下的所有文件及子文件夹?
  • 如何获取 文件类型?文件更新日期?多谢高手帮忙!
  • 请问bash中如何获取一个项目目录下的执行文件的文件名?
  • 用jspsmartupload上载文件怎样获取文件的名称?
  • Shell获取文件的文件名和扩展名的例子
  • 寻找文件夹下.c的文件,然后将同名的.d文件获取到 用shell怎么写
  • python 获取文件列表(或是目录例表)
  • 在shell脚本中,给定一个文件全路径(字符串),如何获取其文件夹?(内详)
  • C如何获取某文件中某一类型文件,且对其排列
  • bat 批处理获取文件路径
  • vm下获取文件的办法
  • android 获取文件的扩展名和去掉文件扩展名的小例子
  • 怎样获取超过4G的Linux Regular文件的大下?
  • 我想在web-inf/classes 下存文件, 怎样获取地址。
  • C# 获取程序集版本、文件版本
  • 如何从用户名获取其对应的终端文件名?
  • shell求救:获取一个文件夹下的所有文件,判断其大小
  • 如何获取两个tag之间不同的文件列表
  • 如何获取当前目录(或当前class的所在目录)?
  • 获取整个目录以下所有目录及文件的权限
  • php递归获取目录内文件(包含子目录)的代码
  • php递归获取目录内文件(包含子目录)封装类分享
  • 紧急求助:怎么获取一个目录中的所有目录和文件名?
  • 如何获取当前用户的根目录
  • 如何在程序内获取程序所在的目录?
  • 在gtk下,怎样获取系统时间??怎样获取当前的目录路径???
  • 怎么获取本地磁盘目录树
  • C# 获取(非)Web程序根目录的可用方法
  • .NET中获取程序根目录的常用方法介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python获取网页编码的方法及示例代码
  • 关于获取在jsp上获取客户端时间的问题
  • java Servlet获取和设置cookie实例代码
  • 关于Ganglia中的gmond组件收集到的资源信息如何获取(如何获取telnet后返回的信息)
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 利用sender的Parent获取GridView中的当前行(获取gridview的值)
  • php获取访客ip地址原理及提供七段代码供参考
  • php获取本机ip地址 php获取远程IP地址
  • linux获取主机名后用gethostbyname() 不能获取主机ip
  • javascript 获取url参数的正则表达式(用来获取某个参数值)
  • C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值
  • linux根据pid获取进程名和获取进程pid(c语言获取pid)
  • Shell获取系统时间问题
  • Shell获取系统时间问题 iis7站长之家
  • 新手问题:Linux下如何获取进程占用的系统资源
  • c++如何获取当前进程名
  • 怎么通过snmp获取远程主机指定进程信息?
  • C#获取路径的多种方法
  • 怎样获取终端的所有打印消息
  • linux 内核空间如何获取当前时间(常用格式)
  • Android获取本机电话号码的简单方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3