#include <dirent.h>
void recovery_backend()
{
DIR * pdir ;
struct dirent * pdirent;
struct stat f_ftime;
char full_path[PATH_MAX] = {};
char buf[PATH_MAX] = {};
char cmd[] = {};
pdir = opendir(cups_backend);
if(pdir == NULL)
return ;
for(pdirent = readdir(pdir);pdirent != NULL;pdirent = readdir(pdir))
{
if(strcmp(pdirent->d_name,".")==||strcmp(pdirent->d_name,"..")==) continue;
memset(full_path,,sizeof(full_path));
snprintf(full_path,sizeof(full_path),"%s%s",cups_backend,pdirent->d_name);
if(stat(full_path,&f_ftime) != )
if(S_ISDIR(f_ftime.st_mode)) continue; /*子目录跳过*/
if(f_ftime.st_mode & S_IFDIR) continue;
memset(buf,,sizeof(buf));
readlink(full_path,buf,sizeof(buf));
if(strcmp(full_hook_backend,buf) == )
{
remove(full_path);
memset(cmd,,sizeof(cmd));
snprintf(cmd,sizeof(cmd),"cp -P %s%s %s",bk_backend,pdirent->d_name,cups_backend);
system(cmd);
}
}
closedir(pdir);
}

遍历目录

void CConfigfile::GerConfigFile(const char *strpath)
{
char dir[MAX_PATH] = {0};
char childpath[MAX_PATH] = {0};
DIR *dp; // 定义子目录流指针
struct dirent *entry; // 定义dirent结构指针保存后续目录
struct stat statbuf; // 定义statbuf结构保存文件属性
strcpy(dir, strpath);
if((dp = opendir(dir)) == NULL) // 打开目录,获取子目录流指针,判断操作是否成功
{
puts("can't open dir.");
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; sprintf(childpath,"%s/%s",strpath,entry->d_name);
printf("path:%s\n",childpath);
GerConfigFile(childpath);
//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); // 关闭子目录流
return;
}

  

linux c 遍历目录及文件的更多相关文章

  1. Linux下遍历目录及文件,更改权限

    Linux下遍历目录及文件,更改权限 引言: 我在Linux下搭建android时,将eclipse及sdk复制到/usr/下时,总会出现无法读,无法写写样的问题. 解决方案: 有两个方案: 一.将复 ...

  2. linux C遍历目录下文件

    参考链接: http://blog.sina.com.cn/s/blog_626b7339010161tr.html

  3. 【app】遍历目录所有文件

    遍历目录所有文件   原创,转载时请注明,谢谢.邮箱:tangzhongp@163.com 博客园地址:http://www.cnblogs.com/embedded-tzp Csdn博客地址:htt ...

  4. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  5. php遍历目录下文件,并读取内容

    <?php echo "<h2>遍历目录下文件,并读取内容</h2><br>\n"; function listDir($dir) { i ...

  6. linux下为目录和文件设置权限

    摘:linux下为目录和文件设置权限 分类: Linux2012-05-09 03:18 7456人阅读 评论(1) 收藏 举报 linuxwordpressweb数据库serverfile linu ...

  7. Linux中/proc目录下文件详解(转贴)

      转载:http://www.sudu.cn/info/index.php?op=article&id=302529   Linux中/proc目录下文件详解(一) 声明:可以自由转载本文, ...

  8. dos下遍历目录和文件的代码(主要利用for命令)

    对指定路径指定文件进行遍历的程序,这里有多个批处理代码,但运行好像有些问题,大家可以根据需要选择 ===== 文件夹结构 ======================================= ...

  9. dos下遍历目录和文件的代码(主要利用for命令)(转)

    ===== 文件夹结构 ============================================= D:\test ---A Folder 1 |-----A file 1.txt | ...

随机推荐

  1. day--42 前端基础小结

    前端基础总结 一:前端实现的原理: 小实例: 01:第一步:创建一个socket服务端: import socket server=socket.socket() ip_port=("127 ...

  2. C++_基础2-复合数据类型

    C语言使用术语“派生类型”,C++对类关系使用术语“派生”.所以就改用“复合类型”. 数组 数组是一种数据格式,能够存储多个同类型的值. 数组声明应指出以下三点: 存储在每个元素中的值的类型: 数组名 ...

  3. asp.net boilerplate 配置文件加载

  4. 记一次ctf比赛解密题的解决(可逆加密基本破解之暴力破解)

    题目是这个样子的: code.txt的内容是这样: 有点吓人木?233333 其实解密之后是这样的: 找到一点安慰没? 好了,废话不多说.讲解一下思路吧. 我们知道base64加密是属于可逆加密的.简 ...

  5. vue 同一个组件的跳转, 返回时保留原来的下拉位置

    1,需求分析 公司的项目有这样一个需求: 同一个list组件,根据传过来的listId渲染成多个页面,每个页面都可以下拉.在返回到不同的list页面时,要保留当时下拉的位置. 说的我自己都有点懵逼了, ...

  6. DVWA1.9平台XSS小结

    LOW级别就不写了...... 直接上中高级别(结合源码更好理解) 1.XSS Reflected(Medium) 从源码中可以清楚的看到,输入的<script>标签被过滤掉了,看清了,只 ...

  7. aoj0121

    一.题意:类似于华容道,输入是8个数字,输入虽然是一行,但实际是以两行的方式操作的.0表示空位,别的相邻数字可移动到该位置上.求最少移动步骤得到指定的状态. 二.思路:这题可以用BFS来解决.因为在每 ...

  8. Promise个人笔记---【Promise的前世今生】

    Promise第一版本 案例是使用Node.js内置的fs模块[就是文件系统模块,负责读写文件.]来模拟异步操作 const fs = require('fs'); function getFileP ...

  9. oracle 笔记---(一)

    +查看主节点和副节点 oclumon manage -get MASTER REPLICA +查看当前的统计信息和保存的时间段 oclmon manage -get repsize +收集时间段内的节 ...

  10. 【C#】隐式类型var

    在.NET 3.0后微软引入了隐式类型var,编译器可以自动判断变量的类型,通过var这个隐式类型,可以提高开发人员的开发效率,很多时候可以不考虑对象的类型,编译器会自动帮我们判断 使用隐式类型和使用 ...