C语言判断文件夹或者文件是否存在以及权限等信息access函数和删除文件或目录 remove()函数使用实例
一、access函数可以判断文件夹或者文件是否存在以及获取权限等信息。
1、所需头文件和函数原型:
#include <unistd.h>
int access(const char *pathname, int mode);
int access(const char *pathname, int mode);
2、参数说明:
filename:可以填写文件夹路径或者文件路径
mode:(F_OK) 只判断是否存在
mode:(F_OK) 只判断是否存在
(R_OK) 判断读权限
(W_OK) 判断写权限
(X_OK) 判断执行权限
3、返回值:
3、返回值:
用于判断文件夹是否存在的时候, 若存在或者具有相关权限,返回值为0;不存在或者无权限,返回值为-1
。
二、remove()函数可以用来删除文件或目录
1、所需头文件和函数原型:
int remove(const char *pathname);
2、参数说明:
filename:可以填写文件夹路径或者文件路径
3、返回值:
On success, zero is returned. On error, -1 is returned, and errno is set appropriately
#include<stdio.h>
#include<unistd.h>
char FILE_NAME[80];
int main()
{
printf("Please input the path's the file you want to delete:");
gets(FILE_NAME);
/* Check for existence
mode:
(F_OK) 只判断是否存在
(R_OK) 判断读权限
(W_OK) 判断写权限
(X_OK) 判断执行权限
*/
if( (access(FILE_NAME, F_OK )) != -1 )
{
printf( "File [ %s ] exists\n", FILE_NAME);
/* Check for write permission */
if( (access(FILE_NAME, W_OK )) != -1 )
{
printf( "File [ %s ] has write permission\n", FILE_NAME);
}
else
{
printf( "File [ %s ] has not write permission\n", FILE_NAME);
}
/* Check for read permission */
if( (access(FILE_NAME, R_OK )) != -1 )
{
printf( "File [ %s ] has write permission\n", FILE_NAME);
}
else
{
printf( "File [ %s ] has not write permission\n", FILE_NAME);
}
/* Check for execute permission */
if( (access(FILE_NAME, X_OK )) != -1 )
{
printf( "File [ %s ] has execute permission\n", FILE_NAME);
}
else
{
printf( "File [ %s ] has not execute permission\n", FILE_NAME);
}
}
else
{
printf( "File [ %s ] don't exists\n", FILE_NAME);
}
//RETURN VALUE
//On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
if( remove(FILE_NAME) == 0 )
printf("%s has been Removed!\n", FILE_NAME);
else
perror("failed to remove the file!\n");
return 1;
}
四、执行测试
五、小结
上面的测试实例运行的结果是access函数可以判断文件或者文件夹是否存在以及获取权限信息;remove函数可以删除文件夹和文件。