当前位置: 首页 > 知识库问答 >
问题:

检查C中是否存在文件,而不创建文件[重复]

沈单弓
2023-03-14

我想检查文件是否存在,并尝试使用以下函数

#include <fstream>

bool DoesFileExist(const std::string& filename) {
    std::ifstream ifile(filename.c_str());
    return (bool)ifile;
    }

但是,它似乎不能正常工作,因为不是检查文件的存在而是创建文件!这里有什么问题?

请注意,我被迫使用C 98标准,无法使用include

共有1个答案

习胤运
2023-03-14

您可以使用这些函数之一查看文件是否存在

bool DoesFileExist (const std::string& name) {
    ifstream f(name.c_str());
    return f.good();
}

bool DoesFileExist (const std::string& name) {
    if (FILE *file = fopen(name.c_str(), "r")) {
        fclose(file);
        return true;
    } else {
        return false;
    }   
}

bool DoesFileExist (const std::string& name) {
    return ( access( name.c_str(), F_OK ) != -1 );
}

bool DoesFileExist (const std::string& name) {
  struct stat buffer;   
  return (stat (name.c_str(), &buffer) == 0); 
}
 类似资料:
  • 问题内容: 如果我这样做: 然后创建文件,并始终返回“文件存在”。是否可以不创建文件就检查文件是否存在? 编辑: 我忘了提到它处于for循环中。所以这是真实的东西: 问题答案: 实例化a时,您并没有在磁盘上创建任何东西,而只是构建了一个可以调用某些方法的对象,例如。 既好又便宜,不要试图避免这种实例化。 该实例只有两个字段: 这是构造函数: 如您所见,实例只是路径的封装。创建它以便进行调用是继续进

  • 我想确定C 11中是否存在一个文件 我有以下代码: 和 哪一个是正确的和惯用的?

  • 问题内容: 尝试检查我要读取的文件是否存在。 问题答案: 这是另一种方法: 包装的用途和功能: p_DirName in varchar2, – schema object name p_FileName in varchar2 ) return number is l_file_loc bfile; begin l_file_loc := bfilename(upper(p_DirName),

  • 我想向文件输入一些内容,但我想首先检查是否存在具有我想要创建的名称的文件。如果是这样,我不想创建任何文件,即使文件是空的。 我的尝试 有什么办法可以做我想做的事吗?

  • 问题内容: 如何检查 文件 的存在? 在模块的文档中,有方法的说明。但是,据我了解,它只检查目录的存在。而且我需要检查 文件 ! 如何才能做到这一点? 问题答案: 为什么不尝试打开文件? 无论如何,经过一分钟的搜索,请尝试以下操作: 对于Node.js v0.12.x及更高版本 双方并已弃用 *编辑: 已更改: 至: 林特抱怨双重等于不是三次等于。 使用fs.stat:

  • rank ▲ ✰ vote url 17 776 241 907 url 检查一个文件夹是否存在,如果不存在就创建它 有什么好的方法吗?这个是我想的: filename = "/my/directory/filename.txt" dir = os.path.dirname(filename) try: os.stat(dir) except: os.mkdir(dir) f