C语言,判断一个文件是否存在

C语言,判断一个文件是否存在,第1张

你贴的这个函数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/C++中判断某一文件或目录是否存在

1.C++很简单的一种办法:#include<iostream#include<fstreamusingnamespacestd#defineFILENAME"stat.dat"intmain(){fstream_file

_file.open(FILENAME,ios::in)if(!_file){cout<<FILENAME<<"没有被创建"}else{cout<<FILENAME<<"已经存在"}return0}

2.利用 c 语言的库的办法:

函数名: access功能: 确定文件的访问权限用法: int access(const char *filename, intamode)

以前一直没用过这个函数,今天调试程序发现了这个函数,感觉挺好用,尤其是判断一个文件或文件夹是否存在的时候,用不着再find了,文件的话还可以检测读写权限,文件夹的话则只能判断是否存在,下面摘自MSDN:int_access(constchar*path,

intmode)Return Value

Each of these functions returns 0 if the file has the given

mode. The function returns –1 if the named file does not exist or

is not accessible in the given modein this case,errnois set as follows:EACCESAccess denied: file’s permission setting does not

allow specified access.

ENOENTFilename or path not found.

ParameterspathFile or directory pathmodePermission settingRemarksWhen used with files, the_accessfunctiondetermines whether the specified file exists and can be accessed as

specified by the value ofmode

. When used with

directories,

_accessdetermines only whether the

specified directory existsin Windows NT, all directories have

read and write access.

modeValue

Checks File For00

Existence only02

Write permission04

Read permission06

Read and write permissionExample#include<io.h#include<stdio.h#include<stdlib.hvoidmain(void){if((_access("ACCESS.C",0))!=-1){printf("FileACCESS.C


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9630615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存