Linux下递归遍历指定目录下的文件内容并删除的函数实现
来源:互联网 发布:中国云计算方案大会 编辑:程序博客网 时间:2024/05/17 03:27
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
int is_dir(const char *path) // 判断是否为目录
{
struct stat statbuf;
if(stat(path, &statbuf) == 0) //将path文件名信息写入stat结构体
{
return S_ISDIR(statbuf.st_mode); //返回是否为目录
}
return 0;
}
int is_file(const char *path) //判断是否为文件
{
struct stat statbuf;
if(stat(path, &statbuf) == 0) //将path文件名信息写入stat结构体
{
return S_ISREG(statbuf.st_mode); //返回是否为文件
}
return 0;
{
return (strcmp(path, ".") == 0 || strcmp(path, "..") == 0);
}
void get_file_path(const char *path, const char *filename, char *file_path) //组合路径和当前目录名,成为新路径:file_path
{
strcpy(file_path, path);
if(file_path[strlen(file_path) - 1] != '/')
{
strcat(file_path, "/");
}
strcat(file_path, filename);
return;
}
void delete_file(const char *path)
{
DIR *dir;
struct dirent *dir_info;
char file_path[100];
if(is_file(path)) //判断是否为文件
{
printf("delete:%s\n", path);
remove(path);
return;
{
if((dir = opendir(path)) == NULL) //目录打开失败返回
{
return;
}
while(dir_info = readdir(dir))
{
if(is_special_file(dir_info->d_name)) //判断是否为“.”或".."
{
continue;
}
get_file_path(path,dir_info->d_name, file_path); //组合路径和当前目录名,成为新路径:file_path
delete_file(file_path);
}
rmdir(path); //删除空目录
printf("rmdir: %s\n", path);
}
}
int main()
{
delete_file("./aaa");
return 0;
}
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
int is_dir(const char *path) // 判断是否为目录
{
struct stat statbuf;
if(stat(path, &statbuf) == 0) //将path文件名信息写入stat结构体
{
return S_ISDIR(statbuf.st_mode); //返回是否为目录
}
return 0;
}
int is_file(const char *path) //判断是否为文件
{
struct stat statbuf;
if(stat(path, &statbuf) == 0) //将path文件名信息写入stat结构体
{
return S_ISREG(statbuf.st_mode); //返回是否为文件
}
return 0;
}
{
return (strcmp(path, ".") == 0 || strcmp(path, "..") == 0);
}
void get_file_path(const char *path, const char *filename, char *file_path) //组合路径和当前目录名,成为新路径:file_path
{
strcpy(file_path, path);
if(file_path[strlen(file_path) - 1] != '/')
{
strcat(file_path, "/");
}
strcat(file_path, filename);
return;
}
void delete_file(const char *path)
{
DIR *dir;
struct dirent *dir_info;
char file_path[100];
if(is_file(path)) //判断是否为文件
{
printf("delete:%s\n", path);
remove(path);
return;
}
{
if((dir = opendir(path)) == NULL) //目录打开失败返回
{
return;
}
while(dir_info = readdir(dir))
{
if(is_special_file(dir_info->d_name)) //判断是否为“.”或".."
{
continue;
}
get_file_path(path,dir_info->d_name, file_path); //组合路径和当前目录名,成为新路径:file_path
delete_file(file_path);
}
rmdir(path); //删除空目录
printf("rmdir: %s\n", path);
}
}
int main()
{
delete_file("./aaa");
return 0;
}
0 0
- Linux下递归遍历指定目录下的文件内容并删除的函数实现
- linux下递归删除目录下所有指定的文件
- Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件
- php递归函数实现遍历指定文件下的目录与文件数量
- C++实现Linux下遍历指定目录下的文件
- deleteDir函数的实现,递归删除指定的目录下的文件
- C# winfrom遍历指定目录下的所有文件,并删除指定文件
- 递归遍历Linux下的目录文件源码实现
- 递归删除指定目录下的所有内容
- PHP递归删除指定目录下的文件和目录
- PHP递归删除指定目录下的文件和目录
- PHP递归删除指定目录和目录下的文件
- 遍历出指定目录下的所有文件 --递归调用
- linux 下pyhton 删除指定目录下所有的重复内容的文件
- JavaIO之删除指定目录(递归删除,先删除目录下的文件再删除目录)
- 递归遍历删除指定文件夹下的文件
- Linux下 C语言实现遍历指定目录下指定格式的文件
- 遍历指定目录下指定类型文件的函数
- 最新的安卓面试知识(java、安卓)
- java GUI
- Django安装
- pixhawk添加一个新的MAVLink 消息
- 备份压缩命令 - tar
- Linux下递归遍历指定目录下的文件内容并删除的函数实现
- LeetCode-11.Container With Most Water
- java环境变量设置
- 数学
- [androiod]_[Service基本使用]
- 琐事MARK
- 5种单例模式的介绍与比较
- Java注解(Annotation)介绍
- mysql5.5配置半同步复制