linux文件与目录操作相关API及递归遍历目录
2013-02-25 12:02
651 查看
1.文件与目录操作主要API
@ int chmod(const char *path, mode_t mode) 改变目录或文件访问权限;
@ int chown(const char *path, uid_t owner, gid_t group)改变文件属主
@ int mkdir(const char *path, mode_t mode)创建目录
@ int rmdir(const char *path)删除目录
@ int chdir(const char *path)切换目录
@ char * getcwd(char *buf, size_t size)获取当前目录
@ DIR *opendir(const char *name)打开目录建立目录流,使用返回的目录流完成目录操作,类似于文件指针
@ struct dirent *readdir(DIR *dirp)返回一个指向目录项的资料结构
@ int closedir(DIR *dirp)关闭一个目录流并释放相关资源
2.类似深度遍历的目录扫描方法
void printdir(char *dir, int depth)
{
DIR *dp;
struct dirent *entry;
struct stat statbuf;
if((dp = opendir(dir)) == NULL)
{
fprintf(stderr,"invalid dir: %s\n",dir);
return;
}
chdir(dir);
while((entry = readdir(dp)) != NULL)
{
lstat(entry->d_name, &statbuf);
if(S_ISDIR(statbuf.st_mode))
{
if(strcmp(".",entry->d_name) == 0 ||
strcmp("..",entry->d_name) == 0)
continue;
printf("%*s%s/\n",depth,"",entry->d_name);
printdir(entry->d_name,depth+2); //递归调用遍历当前子目录
}
else
printf("%*s%s\n",depth,"",entry->d_name);
}
chdir("..");
//一个子目录遍历结束,返回上一级目录
closedir(dp);
}
@ int chmod(const char *path, mode_t mode) 改变目录或文件访问权限;
@ int chown(const char *path, uid_t owner, gid_t group)改变文件属主
@ int mkdir(const char *path, mode_t mode)创建目录
@ int rmdir(const char *path)删除目录
@ int chdir(const char *path)切换目录
@ char * getcwd(char *buf, size_t size)获取当前目录
@ DIR *opendir(const char *name)打开目录建立目录流,使用返回的目录流完成目录操作,类似于文件指针
@ struct dirent *readdir(DIR *dirp)返回一个指向目录项的资料结构
@ int closedir(DIR *dirp)关闭一个目录流并释放相关资源
2.类似深度遍历的目录扫描方法
void printdir(char *dir, int depth)
{
DIR *dp;
struct dirent *entry;
struct stat statbuf;
if((dp = opendir(dir)) == NULL)
{
fprintf(stderr,"invalid dir: %s\n",dir);
return;
}
chdir(dir);
while((entry = readdir(dp)) != NULL)
{
lstat(entry->d_name, &statbuf);
if(S_ISDIR(statbuf.st_mode))
{
if(strcmp(".",entry->d_name) == 0 ||
strcmp("..",entry->d_name) == 0)
continue;
printf("%*s%s/\n",depth,"",entry->d_name);
printdir(entry->d_name,depth+2); //递归调用遍历当前子目录
}
else
printf("%*s%s\n",depth,"",entry->d_name);
}
chdir("..");
//一个子目录遍历结束,返回上一级目录
closedir(dp);
}
相关文章推荐
- Linux下文件及目录的一些操作(附递归遍历目录源码)
- Linux下文件及目录的一些操作(附递归遍历目录源码)
- Linux下文件及目录的一些操作(附递归遍历目录源码)
- java的api操作HDFS实现递归打印目录并实现在Linux下的显示效果
- 解析linux 文件和目录操作的相关函数
- Linux下递归遍历指定目录下的文件内容并删除的函数实现
- linux 下的文件目录操作之遍历目录
- linux 文件/目录权限、用户、组相关操作
- [Linux C]递归遍历指定目录下的子目录和文件
- linux 目录 文件管理 相关操作 权限
- Linux 文件和目录的操作,权限相关命令
- IO-File 文件 目录 基本操作 递归 遍历
- Linux文件操作的主要接口API及相关细节
- 【Linux从零开始】:2.文件与目录的管理和配置(2)相关操作命令
- linux基本操作(1)--文件、目录、用户、权限相关
- Linux和Windows下文件和目录的相关属性及操作
- Linux下递归遍历目录和文件
- linux 下文件和目录相关常用操作
- linux目录操作及递归遍历目录
- linux文件目录操作相关函数