c语⾔判断txt⽂件是否为空,如何判断⽂档或⽂件夹为空?有⽤
超薄电视实例:
#include
#include
int main(void)
{
if ( !access("C://windows",0) )
puts("C://windows EXISITS!");
else
puts("C://windows DOESN'T EXISIT!");
return 0;
}
⽅法⼀: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
#include
int main(void)
{
if ( !access("C://windows",0) )
puts("C://windows EXISITS!");
else
puts("C://windows DOESN'T EXISIT!");
return 0;
}
⽅法⼆:fopen函数判断⽂件是否存在
函数原型:FILE *fopen (char *filename, char *type);
filename:⽂件路径
type:打开⽂件的⽅式(有r、w、r+、w+、a、rb、wb等等)
⽤于判断⽂件是否存在可以使⽤ r 或者 rb ,因为使⽤ 其它⽅式的话,可能会⾃动建⽴⽂件。 返回值为NULL(打不开)和正数(能打开)。特别提醒:⽤这种⽅法做出的判断是不完全正确的,因为有的⽂件存在,但是可能不可读。
在我们平时的编程时,经常需要判断⽂件或者⽬录是否存在,相对来说判断⽂件的存在性⽐较简单,⽬录则⽐较复杂。
下⾯就详细的介绍⼏种⽅法。
⾸先关于判断⽂件的存在性:
⼀、ifstream
在C++中,可以利⽤ifstream⽂件输⼊流,当我们直接使⽤ifstream来创建⽂件输⼊流的时候,如果⽂件不存在则流创建失败。ifstream fin(
"
<
"
);
if
(
!
fin) { std::cout
<<
"
can not open this file
"
<<
endl;
这是c++中最常⽤的⽅式。
⼆、File
安全文明驾驶C中也是同样道理,我们可是File的相关操作。
File
*
fh
=
fopen(
"
hello
"
,
"
r
"
);
if
(fh
==
NULL) { printf(
"
%s
"
,
"
can not open the file
"
); }
三、_access
当然C中还有⼀种⽅式是直接调⽤c的函数库。
211大学有哪些大学有多少所
就是函数 int _access(const char* path,int mode);
这个函数的功能⼗分强⼤。
可以看看msdn的详细介绍
#include
<
io.h
>
#include
<
stdio.h
>
#include
<
stdlib.h
>
int
main(
void
) {
//
Check for existence.
if
( (_access(
"
crt_ACCESS.C怎么给头像加国旗
"
,
))
!=
-
1
) { printf_s(
"
File crt_ACCESS.C exists.\n
"
);
//
Check for write permission.
//
Assume file is read-only.
if
宝马多钱( (_access(
"
crt_ACCESS.C
"
,
2
))
==
-
1
) printf_s(
"
File crt_ACCESS.C does not have write permission.\n
"
)
; } }
这三种⽅式算是判断⽂件存在⽐较简单快捷的⽅法了。
现在来说说判断⽬录存在的⼀些⽅法。
⼀、FindFirstFile
在C++中可以调⽤系统的⼀些函数,但这种⽅法稍微显得复杂⼀些。WIN32_FIND_DATA wfd;
bool
油茶图片rValue
=
false
; HANDLE hFind
=
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论