• C/C++枚举目录中的文件或文件夹


    直接上代码

    #include <io.h>
    #include <stdio.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        _finddata_t fd;
        intptr_t pf = _findfirst("e:/*.*",&fd);
        while (!_findnext(pf,&fd))
        {
            printf("%s
    ",fd.name);
        }
        _findclose(pf);
        return 0;
    }
    struct _finddata_t 是用来存储文件各种信息的结构体。定义如下:
    struct _finddata_t
    {
        unsigned attrib;
        time_t time_create;
        time_t time_access;
        time_t time_write;
        _fsize_t size;
        char name[_MAX_FNAME];
    };
    其中各成员变量的含义如下:
    unsigned attrib:
    文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。
    文件属性是用位表示的,主要有以下一些:
    _A_ARCH(存档)
    _A_HIDDEN(隐藏)
    _A_NORMAL(正常)
    _A_RDONLY(只读)
    _A_SUBDIR(文件夹)
    _A_SYSTEM(系统)
    这些都是在头文件中定义的宏,可以直接使用,而本身的意义其实是一个无符号整型(只不过这个整型应该是2的几次幂,从而保证只有一位为1,而其他位为0)。既然是位表示,那么当一个文件有多个属性时,它往往是通过位或的方式,来得到几个属性的综合。例如只读+隐藏+系统属性,应该为:_A_HIDDEN | _A_RDONLY | _A_SYSTEM 。
    time_t time_create:
    这里的time_t是一个变量类型(长整型?相当于long int?),用来存储时间的,我们暂时不用理它,只要知道,这个time_create变量是用来存储文件创建时间的就可以了。
    time_t time_access:文件最后一次被访问的时间。
    time_t time_write:文件最后一次被修改的时间。
    _fsize_t size:文件的大小。这里的_fsize_t应该可以相当于unsigned整型,表示文件的字节数。
    char name[_MAX_FNAME]:文件的文件名。这里的_MAX_FNAME是一个常量宏,它在头文件中被定义,表示的是文件名的最大长度。
     
    转载注明出处:http://www.cnblogs.com/guobbs/p/3896232.html
     
  • 相关阅读:
    JVM指令
    spring源码分析之配置文件名占位符的解析(一)
    freemarker
    spring整合freemarker
    策略模式
    spring boot 学习笔记(一)之前端文件配置
    线程使用总结
    maven pom 配置 学习笔记(二)之搭建nexus私服
    删除数据库中所有存在表的数据
    自定义SWT控件七之自定义Shell(可伸缩窗口)
  • 原文地址:https://www.cnblogs.com/guobbs/p/3896232.html
Copyright © 2020-2023  润新知