使用系统函数:opendir、mkdir、readdir、mkdir对目录进行操作
头文件:
#include <sys/types.h>
#include <dirent.h>
1、打开目录 opendir
形式:
DIR * opendir(const char * name);
DIR * fopendir(int fd);
返回值:
文件夹不存在,返回NULL,存在返回DIR * dir;
2.读目录readdir
形式:struct dirent * dirp = readdir( dir );
struct dirent
{
long d_info; //索引节点号
off_t d_off; //在目录文件中的偏移
unsigned short d_reclen; //文件名长
char d_name[255]; //文件名
};
3.关闭目录closedir
closedir(DIR * dir);
4.创建目录mkdir
int fd = mkdir("dir_path", mod_t mod);
例:
创建名为my_dir的目录,权限为所有用户(组)均可读、写、操作
if(NULL != (dir = opendir("./my_dir")))
{
int fd = mkdir("./my_dir", 0755);
if(fd == -1)
{
perror("create my_dir failt\n");
}
}
实例:
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
int main(void)
{
DIR * dp;
struct dirent *dirp;
dp = opendir("./");
if( dp == NULL)
{
perror("opendir\n");
return -1;
}
while(NULL != (dirp = readdir(dp)))
{
printf("filename = %s\n", dirp->d_name);
}
closedir(dp);
return 0;
}