可能是重复问题:
在C语言中检查文件是否存在的最佳方法(跨平台)
我想检查一个文件是否存在。我将我的测试文件权限更改为“chmod -r somefile”。但现在它说该文件不存在,即使它确实存在。
所以我认为如果我没有读取权限,我就无法用“fopen r”打开文件。但这意味着没有简单的方法告诉文件是否存在或无法读取/写入?
还是我错过了什么?任何帮助都将非常感激。
谢谢!
int doesFileExist(const char* filename)
{
FILE* fptr = fopen(filename, "r");
if (fptr != NULL)
{
fclose(fptr);
printf("File exists\n");
return 1;
}
printf("File doesnt exist\n");
return 0;
}
更新:感谢各位提供的出色链接和解释!
errno
吗?编辑:尝试使用以下代码获取一些错误信息:printf("File doesnt exist: %s\n",strerror(errno));
不要忘记包含errno.h
头文件。 - Jack