一个简单的扫描目录的程序
来源:互联网 发布:自己如何做淘宝店铺 编辑:程序博客网 时间:2024/05/19 17:08
这是一个简单的扫描目录并打印出来的程序,有点类似 tree命令。
#include<fcntl.h>#include<unistd.h>#include<stdio.h>#include<dirent.h>#include<string.h>#include<sys/types.h>#include<sys/stat.h>#include<stdlib.h>void scan_dir(char *dir, int depth){ DIR *dp; struct dirent *entry; struct stat statbuf; if((dp = opendir(dir))==NULL){ puts("无法打开"); return; } chdir(dir); while((entry=readdir(dp))!=NULL){ lstat(entry->d_name,&statbuf); if(S_IFDIR & statbuf.st_mode){ if(strcmp(".",entry->d_name)==0||strcmp("..",entry->d_name)==0) continue; //注意%*s需要两个参数,第一个参数代表域宽,第二个代表输出的字符串,当域宽大于字符串长时,左补零,反之原样 //输出。类似printf("%*s%s","4","hello","world"),会把字符串4转换为整数,打印这么多空格,给人感觉是陷入了死循环 //其实,并不是。至于这个域宽到底是多少,经过我的测试,当域宽的值位2147483648*2时就会原样输出后面的字符串 printf("%*s%s/\n",depth,"",entry->d_name); scan_dir(entry->d_name,depth+4); }else{ printf("%*s%s\n",depth,"",entry->d_name); } } chdir(".."); closedir(dp);}int main(void){ puts("扫描/home/xzy/test/hosts"); scan_dir("/home/xzy/test/hosts",0); puts("扫描结束"); return 0;}
结果示例如下:
0 0
- 一个简单的扫描目录的程序
- 一个简单的页面扫描程序Scan
- 一个简单的TCP扫描程序
- 一个简单的文件目录打印程序
- 一个51单片机的键盘扫描程序,算法简单有效
- 一个批处理的扫描程序
- 扫描一个目录下的所有文件
- 简单的扫描枪模拟程序
- 一个程后台扫描的程序
- Linux中实现一个目录扫描程序
- 目录扫描的实现
- 实战Registry和RegistryKey类,一个简单的可疑文件扫描程序
- 简单的一个程序
- 一个简单的程序
- 一个简单的程序
- 利用Python扫描一个目录下所有的视频文件
- 一个简单的递归求目录的程序遇到的问题
- 笔记1-1: 实现一个简单的ls列出目录中的所有项目的程序
- nn pic model preprocess note
- 静态链表与动态链表
- Android WebView 开发详解(二)
- Android6.0以上权限管理问题(权限被拒绝后)
- 典型递归的思想解决汉诺塔问题
- 一个简单的扫描目录的程序
- android ndk第一步使用ndk和Cmake编译.so文件
- 设置linux上mysql连接远程服务器
- Android四大组件之Activity----重新认识Android(4)
- c++primer学习笔记-----3.4迭代器介绍
- Spring学习-24:Spring中的JDBC Template(JDBC模板):默认连接池、DBCP连接池、C3P0池的配置
- 服务器Python环境配置以及远程调试
- ArrayList和LinkedList源码分析总结
- 进程间通信方式总结——管道(二)