-
c如何判断文件是否存在
- 时间:2024-11-06 00:08:43
大家好,今天Win10系统之家小编给大家分享「c如何判断文件是否存在」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!
1.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("存在!");
用这个函数时注意加头文件
有问题请继续追问啊
2.C/C++如何判断一个文件夹是否存在
方法一:access函数判断文件夹或者文件是否存在
函数原型: int access(const char *filename, int mode);
所属头文件:io.h
filename:可以填写文件夹路径或者文件路径
mode:0 (F_OK) 只判断是否存在
2 (R_OK) 判断写入权限
4 (W_OK) 判断读取权限
6 (X_OK) 判断执行权限
用于判断文件夹是否存在的时候,mode取0,判断文件是否存在的时候,mode可以取0、2、4、6。 若存在或者具有权限,返回值为0;不存在或者无权限,返回值为-1。
错误代码
EACCESS 参数pathname 所指定的文件不符合所要求测试的权限。
EROFS 欲测试写入权限的文件存在于只读文件系统内。
EFAULT 参数pathname指针超出可存取内存空间。
EINVAL 参数mode 不正确。
ENAMETOOLONG 参数pathname太长。
ENOTDIR 参数pathname为一目录。
ENOMEM 核心内存不足
ELOOP 参数pathname有过多符号连接问题。
EIO I/O 存取错误。
特别提醒:使用access()作用户认证方面的判断要特别小心,例如在access()后再做open()的空文件可能会造成系统安全上的问题。
实例:
#include <stdio.h>
#include <io.h>
int main(void)
{
if ( !access("C://windows",0) )
puts("C://windows EXISITS!");
else
puts("C://windows DOESNT EXISIT!");
return 0;
}
方法二:fopen函数判断文件是否存在
函数原型:FILE *fopen (char *filename, char *type);
filename:文件路径
type:打开文件的方式(有r、w、r+、w+、a、rb、wb等等)
用于判断文件是否存在可以使用 r 或者 rb ,因为使用 其它方式的话,可能会自动建立文件。 返回值为NULL(打不开)和正数(能打开)。
特别提醒:用这种方法做出的判断是不完全正确的,因为有的文件存在,但是可能不可读。
3.C语言判断指定文件是否存在
头文件:io.h
功 能: 确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。
用 法: int access(const char *filenpath, int mode); 或者int _access( const char *path, int mode );
参数说明:
filenpath
文件或文件夹的路径,当前目录直接使用文件或文件夹名
备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WIN NT 中,所有的文件夹都有读和写权限
mode
要判断的模式
在头文件unistd.h中的预定义如下:
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
具体含义如下:
00 只判断是否存在
02 只判断是否有写权限
04 只判断是否有读权限
06 判断是否有读并且有写权限
程序例
#include<stdio.h>
#include<io.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %sn",
file_exists("NOTEXISTS.FIL") ?"YES":"NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
头文件:io.h
功 能: 确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。
用 法: int access(const char *filenpath, int mode); 或者int _access( const char *path, int mode );
参数说明:
filenpath
文件或文件夹的路径,当前目录直接使用文件或文件夹名
备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WIN NT 中,所有的文件夹都有读和写权限
mode
要判断的模式
在头文件unistd.h中的预定义如下:
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
具体含义如下:
00 只判断是否存在
02 只判断是否有写权限
04 只判断是否有读权限
06 判断是否有读并且有写权限
程序例
#include<stdio.h>
#include<io.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %sn",
file_exists("NOTEXISTS.FIL") ?"YES":"NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
以上就是关于「c如何判断文件是否存在」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~
本文*来②源Win10系统之家Www.gHost580.nEt!
相关文章
-
1.C语言,判断一个文件是否存在你贴的这个函数pathfileexists并不是c语言提供的库函数,而是windows系统提供的系统调用,如果你是初学者,尽量用c语言提供的库函数来实现功能,你可以这样:intexist(char*file)//传入想要...
-
1.如何查看135端口关闭了关闭的端口有,135,137,138,139,445,1025,2475,3127,6129,3389,593,还有tcp.具体操作如下:默认情况下,windows有很多端口是开放的,在你上网的时候,网络病毒和黑客可以通过这些端口连上你的电...
-
1.如何彻底删除InternetExplorer文件“MicrosoftInternetExplorer遇到问题需要关闭。我们对此引起的不便表示抱歉”1.发送错误报告【故障现象】在使用IE浏览网页的过程中,出现“MicrosoftInternetExplorer遇到问题需要关闭...
-
1.如何备份C盘文件到D盘由于备份不能保存用户的个人文件,只能够保存用户进行的系统修改,因此,WindowsXP以上系统考虑到用户可能需要在保存系统的同时保存个人的文档,在“开始菜单”的“所有程序”-“附件”中添加了“备份系...