C语言下文件目录遍历通常会用到下面这些函数

  _access()        /* 判断文件或文件夹路径是否合法 */

  _chdir()     /* 切换当前工作目录 */

  _findfirst()    /* 查找第一个符合要求的文件或目录 */

  _findnext()     /* 查找下一个 */

  _findclose()    /* 关闭查找 */

与此同时还会使用到 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[FILENAME_MAX];       /* 表示文件的名称 */

};

文件属性(attrib)的值可以取下面的值:

#define _A_NORMAL 0x00000000
         #define _A_RDONLY 0x00000001
         #define _A_HIDDEN 0x00000002
         #define _A_SYSTEM 0x00000004
         #define _A_VOLID 0x00000008
         #define _A_SUBDIR 0x00000010
         #define _A_ARCH  0x00000020

在io.h文件中FILENAME_MAX 被定义为260

下面给出的是一个简单的小程序用于列出目录C:\ 下的文件夹的名字

(这里建议大家使用斜杠'/',少用'\',windows下程序能够自动解析'/',使用反斜杠时需要使用"\\")

 #include <dir.h>
#include <stdio.h>
#include <io.h>
#include <string.h> int main(int argc, char* argv[])
{
char path[] = "C:/"; struct _finddata_t fa;
long handle; if((handle = _findfirst(strcat(path,"*"),&fa)) == -1L)
{
printf("The Path %s is wrong!\n",path);
return ;
} do
{
if( fa.attrib == _A_SUBDIR && ~strcmp(fa.name,".")&& ~strcmp(fa.name,".."))
printf("The subdirectory is %s\n",fa.name);
}while(_findnext(handle,&fa) == ); /* 成功找到时返回0*/ _findclose(handle); return ;
}

C语言下文件目录查看的更多相关文章

  1. c++两种字符串赋值方式 并介绍 C语言下遍历目录文件的方式

    c++字符串声明:一种是声明字符数组并赋值,另一种是直接声明string类 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #incl ...

  2. Linux下如何查看版本信息

    Linux下如何查看版本信息, 包括位数.版本信息以及CPU内核信息.CPU具体型号等等,整个CPU信息一目了然.   1.# uname -a   (Linux查看版本当前操作系统内核信息)   L ...

  3. Linux下怎么查看当前系统的版本

    Linux下怎么查看当前系统的版本:   uname -r 功能说明:uname用来获取电脑和操作系统的相关信息. 语 法:uname [-amnrsvpio][--help][--version] ...

  4. 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等

    一.在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&quo ...

  5. 在linux下,查看一个运行中的程序, 占用了多少内存

    1. 在linux下,查看一个运行中的程序, 占用了多少内存, 一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物 ...

  6. c语言下多线程

    原文:c语言下多线程 [问题]创建了10个线程,10个线程公用一个线程体,创建如下: int t1=0,t2=1,t3=2,t4=3,t5=4,t6=5,t7=6,t8=7,t9=8,t10=9; i ...

  7. linux下如何查看mysql、apache是否安装,并卸载

    --linux下如何查看mysql.apache是否安装,并卸载? http://blog.163.com/dengxiuhua126@126/blog/static/1186077720137311 ...

  8. Linux 下实时查看日志

    Linux 下实时查看日志 cat /var/log/*.log 如果日志在更新,如何实时查看 tail -f /var/log/messages 还可以使用 watch -d -n 1 cat /v ...

  9. Linux下如何查看tomcat是否安装、启动、文件路径、进程ID

    Linux下如何查看tomcat是否安装.启动.文件路径.进程ID 在Linux系统下,Tomcat使用命令的操作! 检测是否有安装了Tomcat: rpm -qa|grep tomcat 查看Tom ...

随机推荐

  1. python cPickle和pickle 序列化

    在Python中提供了两个模块:cPickle和pickle来实现序列化,前者是由C语言编写的,效率比后者高很多,一般编写程序的时候,采取的方案是先导入cPickle模块,如果此模块不存在,再导入pi ...

  2. iOS学习笔记(九)—— xml数据解析

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...

  3. JS和C# 里的闭包及闭包在事件中的使用

    在Javascript世界里,无所不用闭包及自定义事件, 自定义事件其实也是事先定义好一种规则 ,当触发者被响应后执行的一段回调.下面看个例子 function dothing(callBack){ ...

  4. 是面向对象设计五个基本原则(SOLID)

    单一职责原则 - 搜狗百科 https://baike.sogou.com/v51360965.htm 单一职责原则并不是一个孤立的面向对象设计原则,它是面向对象设计五个基本原则(SOLID)之一.这 ...

  5. PHP7-MySQLi在分页中的应用

    获取页码,设置每页行数 $page = $_POST["page"]; if($page == ""||$page <= 0){ $page = 1; } ...

  6. [转载]在table上使用::before/::after的问题

    在table上使用::before/::after的问题 转载自: 次碳酸钴的技术博客 http://www.web-tinker.com/article/20638.html 在table上使用:: ...

  7. python函数回顾:setattr()

    描述 setattr 函数对应函数 getatt(),用于设置属性值,该属性必须存在. 语法 setattr 语法: setattr(object, name, value) 参数 object -- ...

  8. Android学习笔记之AndroidManifest.xml文件解析(详解)

    一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文件.它位于整个项目的根目录,描述了package中暴露的组件(activiti ...

  9. Linux基础系列:常用命令(3)

    作业一: ) 将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/.txt(覆盖) cat /etc/passwd /etc/group > /test/.txt ) 将用户信息数据库文件 ...

  10. Spring笔记:AOP基础

    Spring笔记:AOP基础 AOP 引入AOP 面向对象的开发过程中,我们对软件开发进行抽象.分割成各个模块或对象.例如,我们对API抽象成三个模块,Controller.Service.Comma ...