C++之判断文件是否存在的几种方法

news/2024/11/15 3:00:04/

文章目录

  • 1. 方法一:C语言之access
  • 2. 方法二:C++方法之ifstream
  • 3. 方法三:fopen方法
  • 4. 方法四:sys中的stat函数方法

1. 方法一:C语言之access

可以使用C语言中unistd.h里的函数access()来判断文件是否存在,其原型如下:

int access(const char *filename, int mode);

filename是文件名,mode有下列几种方法:

modeDescription
F_OK测试文件是否存在
R_OK测试文件是否有读权限
W_OK测试文件是否有写权限
X_OK测试文件是否有执行权限

返回0,表示存在,返回-1表示不存在。

  • 使用方法
#include <unistd.h>
#include <stdio.h>int main(void)
{if (access("2.txt", F_OK) == 0){printf("1.txt exists.\n");}else{printf("1.txt not exists.\n");}return 0;
}

2. 方法二:C++方法之ifstream

ifstream中的good方法可以判断一个文件是否存在。

#include <iostream>
#include <string>
#include <fstream>
using namespace std;bool isFileExists_ifstream(string& name) {ifstream f(name.c_str());return f.good();
}
int main()
{string filename = "1.txt";bool ret = isFileExists_ifstream(filename);if (ret){cout << "文件存在" << endl;}else{cout << "文件不存在" << endl;}
}

3. 方法三:fopen方法

可以使用fopen的方式尝试打开一个文件。

#include <iostream>
#include <stdio.h>
using namespace std;bool isFileExists_fopen(string& name) {if (FILE *file = fopen(name.c_str(), "r")) {fclose(file);return true;} else {return false;}   
}int main()
{string filename = "1.txt";bool ret = isFileExists_fopen(filename);if (ret){cout << "文件存在" << endl;}else{cout << "文件不存在" << endl;}
}

4. 方法四:sys中的stat函数方法

sys中的stat函数可以查阅文件的状态。

#include <iostream>
#include <sys/stat.h>
using namespace std;bool isFileExists_stat(string& name) {struct stat buffer;   return (stat(name.c_str(), &buffer) == 0); 
}int main()
{string filename = "1.txt";bool ret = isFileExists_stat(filename);if (ret){cout << "文件存在" << endl;}else{cout << "文件不存在" << endl;}
}

http://www.ppmy.cn/news/517456.html

相关文章

MusicGen配乐工具开源,教你怎么给抖音短视频配乐,助你涨粉1000!

大家好&#xff0c;我是千与千寻&#xff0c;好久不见了&#xff0c;很多粉丝私信我说&#xff0c;千寻哥这是去哪了&#xff1f;难道被野外捕捉了。 哈哈哈&#xff0c;当然不是了&#xff0c;千寻依然在学习ChatGPT的道路上和大家一起学习&#xff0c;一起搞钱&#xff01; 但…

tensorRT部署之 代码实现 onnx转engine/trt模型

tensorRT部署之 代码实现 onnx转engine/trt模型 前提已经装好显卡驱动、cuda、cudnn、以及tensorRT下面将给出Python、C两种转换方式 1. C实现 项目属性配置好CUDA、tensoeRT库通常在实际应用中会直接读取onnx模型进行判断&#xff0c;如果对应路径已经存在engine模型&#…

redis协议与异步方式学习笔记

目录 1 交互方式 pipline2 广播机制2.1 概念演示2.2 使用场景 3 redis事物3.1 概念3.2 使用场景3.3 解决的问题3.3.1 背景&#xff1a;多线程竞争出现问题3.3.2 事务3.3.3 安全性事务 3.4两种类型的“事务”3.4.1 watch ... multi exec3.4.2 lua 脚本实现“原子”执行&#xff…

@4.verilog 参数

参数 参数化:参数用来定义时延和变量的宽度&#xff0c;以及状态的编码等 参数类型 parameter&#xff1a;通过例化传参&#xff0c;改变参数值 localparam&#xff1a; parameter 只能对参数赋值一次&#xff0c;使用defparam 实现 注 对于传多个参数时&#xff0c;如BUS_A…

(完美)华为麦芒4 RIO-AL00的usb调试模式在哪里打开的步骤

在我们使用PC通过数据线链接到安卓手机的时候&#xff0c;如果手机没有开启Usb调试模式&#xff0c;PC则没办法成功读到我们的手机&#xff0c;有时&#xff0c;我们使用的一些功能较强的APP好比之前我们使用的一个APP引号精灵&#xff0c;老版本就需要打开Usb调试模式下使用&a…

大数据学习笔记-HDFS(四)——HDFS架构

1、HDFS架构 Hadoop Distribute File System&#xff0c;Hadoop分布式文件系统&#xff0c;HDFS是Hadoop核心组件之一&#xff0c;作为生态圈最底层的分布式服务而存在。 HDFS解决的问题就是大数据如何存储。 架构图&#xff1a;主从架构&#xff08;master/slave&#xff0…

4. 参数配置

4. 参数配置 参数 查看参数 show parameter parameter_name;查看参数是静态参数还是动态参数 select name,value,isses_modifiable,issys_modifiable from v$system_parameter;-- isses_modifiable 和issys_modifiable 分别对应的是session级别修改的参数和system级别修改…

python函数的4种参数类型

总结 python 函数中的不同参数类型的使用方法。 在调用函数时&#xff0c;通常会传递参数&#xff0c;函数内部的代码保持不变&#xff0c;针对 不同的参数 处理 不同的数据。 有位置传参、关键字传参、默认值参数、多值参数等。 1、参数传递 形参和实参&#xff1a; 形参&…