本文目录一览:
C语言,判断一个文件是否存在
你贴的这个函数PathFileExists
并不是C语言提供的库函数,而是Windows系统提供的系统调用。如果你是初学者,尽量用C语言提供的库函数来实现功能,你可以这样:
int exist(char *file) // 传入想要判断的路径字符串指针
{
FILE *fp;
fp = fopen(file, "r"); // fopen是一个C库函数,用于打开文件,"r"是只读模式,在这种模式下,如果文件存在,则能成功以只读模式打开,fopen返回一个非0的文件描述符,如果文件不存在,则fopen返回NULL(NULL意思是空)。正好可以利用这一点来判断文件是否存在
if (fp == NULL)
return 0; // 不存在返回0
else
{
fclose(fp); // 存在的话,要先把之前打开的文件关掉
return 1; // 然后返回1
}
}
这样,你就可用这里定义的exist
函数判断文件是否存在了。比如:
if(exist("a.txt") == 0)
printf("不存在!");
else
printf("存在!");
如果你真想用PathFileExists
这个函数,那么也很简单,LPCTSTR
你可以简单理解为就相当于char*
,这是Windows封装的一个数据类型。_in
是一个修饰符,表示参数是传入给PathFileExists
用的而不是由PathFileExists
传出来的。这个函数可以这样用:
if(PathFileExists("a.txt") == FALSE)
printf("不存在!");
else
printf("存在!");
用这个函数时注意加头文件windows.h
。
有问题请继续追问啊
用纯C语言怎么判断某个文件是否存在
如果你知道文件名和路径的话,直接用fopen
是C的标准库函数。参数为FILE * fopen(const char * path, const char * mode);
路径为完整路径,mode为打开方式,是只读方式打开,还是读写方式打开这些。
如果你只知道文件名,不知道路径,我猜你想要个类似于Windows里面的搜索功能,这个说来话长了。
再或者,你知道路径,不知道文件名?
那个,要用系统的API来干这个事情了。不用系统级的高级函数,搞不定了,因为这个是整个文件系统的事情了。
C语言 检查文件是否存在
C语言中access
函数功能:确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。
用法:
int access(const char *filenpath, int mode);
// 或者
int _access(const char *path, int mode);
参数说明:
filenpath
文件或文件夹的路径,当前目录直接使用文件或文件夹名。 备注:当该参数为文件的时候,access
函数能使用mode
参数所有的值,当该参数为文件夹的时候,access
函数值能判断文件夹是否存在。在WIN NT中,所有的文件夹都有读和写权限。mode
要判断的模式:
#define R_OK 4
#define W_OK 2
#define X_OK 1
#define F_OK 0
具体含义如下:
R_OK
只判断是否有读权限W_OK
只判断是否有写权限X_OK
判断是否有执行权限F_OK
只判断是否存在
怎样让c语言判断文件是否存在
FILE *fp;
fp = fopen("h:\\abc\\x.txt", "r");
if(fp == NULL)
{
// 不存在
}
else
{
fclose(fp);
}
可以把上述代码封装成一个函数。 其实也可以考虑用Windows API来进行判断。