#include<stdio.h>    //标准输入输出
#include<unistd.h> //各种系统调用
#include<dirent.h> //与目录有关的操作
#include<string.h> //与字符串处理有关的函数
#include<sys/stat.h> //与文件状态有关
#include<sys/types.h>//linux系统自定义的类型 void show_directory(char * dir_name,int level);
int main(int argc, char * argv[])
{
if(argc != )
{
fprintf(stdout,"%s\n","参数输入有问题!");
return ;
}
show_directory(argv[],);
return ; } /*用于显示目录
* 第一个参数为目录的名称
* 第二个参数为目录为几及目录
* */ void show_directory(char * dir_name,int level)
{
DIR * dir; //目录流指针
struct dirent * entry; //目录项结构体指针
struct stat statbuf; if( ( dir = opendir(dir_name) ) == NULL )
return ; chdir(dir_name); char cwd[];
getcwd(cwd,); int dir_name_len;
dir_name_len = strlen(dir_name);
fprintf(stdout,"%*s文件夹中:\n",level + dir_name_len,dir_name);
while( ( entry = readdir(dir) ) != NULL )
{ lstat(entry->d_name,&statbuf);
//如果是目录,就第归调用
if( S_ISDIR (statbuf.st_mode) )
{
if( strcmp(".",entry->d_name) == || strcmp("..",entry->d_name) == )
{
continue;
}
int level2;
level2 = level + dir_name_len + ; //计算出空格数
show_directory(entry->d_name,level2);
}
else if( S_ISREG(statbuf.st_mode) ) //如果是文件,输出
{
int length = level + (int)strlen(entry->d_name) + dir_name_len + ; //子段应有占的长度
fprintf(stdout,"%*s\n",level + (int)strlen(entry->d_name) + dir_name_len + ,entry->d_name);
}
}
chdir("..");
closedir(dir); }

Linux C 遍历指定目录的更多相关文章

  1. [WinAPI] API 13 [遍历指定目录 打印文件和其他属性]

    Windows API中,有一组专门的函数和结构,用于遍历目录,它们是FindFirstFile函数.FindNextFile函数和WIN32_FIND_DATA结构.使用FindFirstFile和 ...

  2. PHP遍历指定目录,并存储目录内所有文件属性信息

    项目需要,需要写一个函数,能够遍历指定目录中的所有文件,而且这个目录中的子目录也要遍历.输出文件的属性信息,并存储. 想想需求,不就是一个ls -al命令吗,实现获取相关属性就好了,再加上一个遍历OK ...

  3. linux加载指定目录的so文件

    linux加载指定目录的so文件 http://blog.csdn.net/win_lin/article/details/8286125 download urlhttp://download.ch ...

  4. delphi遍历指定目录下指定类型文件的函数

    遍历指定目录下指定类型文件的函数// ================================================================// 遍历某个文件夹下某种文件,/ ...

  5. Window Linux下实现指定目录内文件变更的监控方法

    转自:http://qbaok.blog.163.com/blog/static/10129265201112302014782/ 对于监控指定目录内文件变更,window 系统提供了两个未公开API ...

  6. java-IO流(File对象-深度遍历指定目录下的文件夹和文件)

    需求:遍历这个树状结构 File(String pathname) '\\'为了转义'\' // 通过抽象路径pathname 创建一个新的文件或者目录 File parent = new File( ...

  7. C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)

    //遍历一个目录下所有的文件列表,代码实例 DirectoryInfo dir = new DirectoryInfo(folderName);var list = GetAll(dir); /// ...

  8. OpenCV代码提取:遍历指定目录下指定文件的实现

    前言 OpenCV 3.1之前的版本,在contrib目录下有提供遍历文件的函数,用起来比较方便.但是在最新的OpenCV 3.1版本给去除掉了.为了以后使用方便,这里将OpenCV 2.4.9中相关 ...

  9. linux用户登录指定目录

    一.创建用户和用户组 [root@web4 lianyu]# groupadd lianyu [root@web4 lianyu]# useradd lianyu -g lianyu [root@we ...

随机推荐

  1. RequestHelper

    Request["param"] 全部 Request.QueryString["param"] get Request.Form["param&qu ...

  2. GitHub Android 开源项目汇总 (转)

    转自:http://blog.csdn.net/ithomer/article/details/8882236 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上.基于 ...

  3. JS和C#访问遇到QueryInterface调用出错

    在原来的WinForm里,我们只要在窗体类的头部添加属性[System.Runtime.InteropServices.ComVisibleAttribute(true)],然后 webBrowser ...

  4. 2D Circular Geometry Kernel ( Geometry Kernels) CGAL 4.13 -User Manual

    1 Introduction The goal of the circular kernel is to offer to the user a large set of functionalitie ...

  5. DataType 枚举

    命名空间:   System.ComponentModel.DataAnnotations 成员名称 说明   CreditCard 表示信用卡号码.   Currency 表示货币值.   Cust ...

  6. CSS2.1SPEC:视觉格式化模型之width属性详解(上)

    在介绍了包含块之后,CSS2.1标准中介绍了width属性和height属性,这两个属性在我们的页面布局中也发挥着重要的作用.在盒模型中,width和height包围了一个框的内容区域(content ...

  7. cas单点登陆系统-casServer搭建

    最近工作比较忙,空闲的时间在搞单点登陆系统,自己写了一套SSO在GitHub上,过程走通了.通过这个例子,自己熟悉了流程,而且破天荒的使用了抽象设计模式,并且熟悉了cookies和session的使用 ...

  8. Mybatis常用知识点总结

    1. #{}和${}的区别是什么? ${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc ...

  9. UIScrollView之isTracking delaysContentTouches canCancelContentTouches

    UIScrollView有一个BOOL类型的tracking属性,用来返回用户是否已经触及内容并打算开始滚动,我们从这个属性开始探究UIScrollView的工作原理: 当手指触摸到UIScrollV ...

  10. POJ 1045

    #include<iostream> #include<cmath> #include<iomanip> using namespace std; int main ...