打开目录:opendir
头文件:
#include<sys/types.h>
#include<sirent.h>
DIR *opendir(const char *name);
形参:name:要打开的目录的路径/名字
返回值:成功DIR *类型的目录流指针失败:返回NULL
关闭目录 closedir
头文件:
#include <sys/types.h>
#include <dirent.h>
int closedir(DIR *dirp);
形参:opendir的返回值
返回值:returns 0 on success.On error, -1 is returned
readdir -- 读取目录信息
头文件:
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
形参:dirp:opendir打开获取到的目录流指针
mkdir -- 创建目录
头文件:
<sys/stat.h> <sys/types.h>
函数原型iint mkdir(const char *pathname, mode_t mode);
参数
pathname:文件路径/文件名
mode:直接使用数字即可(权限)
实际权限:mode &(~umask)
返回值
成功返回0,错误返回-1
rmdir --删除目录(只能删除空文件夹)
头文件:
#include<unistd.h>
参数:要删除目录路径,你也可以直接写argv[1]
返回值
成功返回0,错误返回-1
getcwd -- 获取当前工作的绝对路径
头文件:
#include<unistd.h>
功能:获取当前目录
函数原型:char *getcwd(char *buf, size_t size);返回值
成功返回指向当前目录的指针,和部分值一样,错误返回NULL
chdir -- 改变当前的工作路径
头文件:
#include<unistd.h>
函数原型
int chdir(const char *path);
所属头文件: <unistd.h>
参数
path:文件路径
返回值
成功返回0,失败返回-1
chmod -- 功能 - 更改权限
头文件:
#include <sys/types.h>
#include <sys/stat.h>
参数
path :文件路径
mode 权限
返回值
成功返回0失败-1
例题一:实现ls -i的功能(加一个文件类型)
#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
#include <string.h>
#include<unistd.h>
char Fun(char c);
int main(int argc,char *argv[1])
{
char path[1024]={0};
if(argc<2)
{
strcpy(path,".");
}
else
{
strcpy(path,argv[1]);
}
DIR*dir=opendir(path);
if(dir==NULL)//打开失败
{
perror("opendir");
return -1;
}
struct dirent *p;
while(p=readdir(dir))//一次只能读取一个文件信息
{
if(p->d_name[0]=='.')
continue;//pass掉隐藏文件
printf("%ld %s %c",p->d_ino,p->d_name,Fun(p->d_type));
}
return 0;
}
char Fun(char c)
{
char d=0;
switch(c)
{
case DT_REG:d='-';break;
}
return d;
}
例题二:获取某一文件夹下的所有.c文件
#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
#include <string.h>
#include<unistd.h>
int main(int argc ,char *argv[])
{
char path[1024]={0};
if(argc<2)//当前路径
{
strcpy(path,".");
}
else
{
strcpy(path,argv[1]);//查看其他路径内的.c文件
}
DIR*dir=opendir(path);
struct dirent*p;
while(p=readdir(dir))
{
int n=strlen(p->d_name);
if((strcmp(p->d_name+n-2,".c"))==0)
printf("%s ",p->d_name);
}
return 0;
}
例题三:时间编程,做练习,localtime
#include<stdio.h>
#include<time.h>
int main()
{
time_t t=time(NULL);
// struct tm*p=localtime(&t);
struct tm *p=localtime(&t);
printf("%d %d %d %d %d %d\n",p->tm_year+1900,p->tm_mon+1,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
//printf("%ld\n",t);
return 0;
}