C语言 检查文件是否存在

#include <io.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
char exist_file1(const char *path){
    return fopen(path, "r")!= NULL;
}
char exist_file2(const char *path){
    return access(path,0) ==0;
}
char exist_file3(const char *path){
    std::fstream fp;
    fp.open(path,std::ios::in);
    return !(!fp);
}
int main(){
    char path[] ="1.txt";
    printf("%d\n",exist_file1(path));
    printf("%d\n",exist_file2(path));
    printf("%d\n",exist_file3(path));
    return 0;
}
========== ==============

C语言中access函数

  头文件:io.h
  功能:确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。
  用法: int access(const char *filenpath, int mode); 或者int _access(const char *path, int mode );
  参数说明:
  filenpath
  文件或文件夹的路径, 当前目录 直接使用文件或文件夹名
程序例:
#include <stdio.h>
#include <io.h>

int file_exists(char *filename);

int main(void)
{
   printf("Does NOTEXIST.FIL exist: %s\n",
   file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
   return 0;
}

int file_exists(char *filename)
{
   return (access(filename, F_OK) == 0);
}
  备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WINNT 中,所有的文件夹都有读和写权限
  mode
  要判断的模式
  在头文件unistd.h中的预定义如下:
  #defineR_OK 4
  #defineW_OK 2
  #defineX_OK 1
  #defineF_OK 0
  具体含义如下:
  R_OK只判断是否有读权限
  W_OK只判断是否有写权限
  X_OK判断是否有执行权限
  F_OK只判断是否存在

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值