fstream检查文件是否存在c ++

时间:2015-11-20 17:08:23

标签: c++ file fstream

大家好我正在研究一个RPG项目,我正在创建播放器文件,以便他们可以保存他们的进度等。

我已经制作了一个测试程序,所以我可以用更简单的方式向您展示我正在寻找的东西

代码:

#include <iostream>
#include <fstream>
#include <string>

int main(){
  std::string PlayerFileName;
  std::cout << "Name Your Player File Name: ";
  std::cin >> PlayerFileName;
  std::ofstream outputFile;
  std::string FileName = "Players/" + PlayerFileName;
  outputFile.open(FileName); // This creates the file

  // ...
}

我想查看播放器文件名是否已存在于播放器目录中,以便人们无法保存其进度。

谢谢!

2 个答案:

答案 0 :(得分:0)

我建议以二进制模式打开文件,并使用seekg()和tellg()来计算它的大小。如果大小大于0字节,则表示该文件之前已打开并且已在其中写入数据:

A paragraph

答案 1 :(得分:0)

检查文件是否存在:

inline bool exists (const std::string& filename) {
  struct stat buffer;   
  return (stat (filename.c_str(), &buffer) == 0); 
}
  • 使用此方法需要记住#include <sys/stat.h>

-

在C ++ 14中,可以使用此代码:

#include <experimental/filesystem>

bool exist = std::experimental::filesystem::exists(filename);

&在C ++ 17中:(reference

#include <filesystem>

bool exist = std::filesystem::exists(filename);