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

如何检查C中是否存在文件?[重复]

公孙阳文
2023-03-14

我想确定C 11中是否存在一个文件

我有以下代码:

ifstream inputFile(c);

if (!inputFile.good()) {
        std::cout << "No file found" << '\n';           
}

if (inputFile.peek() == std::ifstream::traits_type::eof()){
           ....
}

哪一个是正确的和惯用的?

共有2个答案

易博文
2023-03-14

如果您试图使用C 11确定文件是否存在,您可能想试试这个想法

#include <iostream>
#include <fstream>

int main(int argc, char *argv[]){
    std::ifstream file("myfile.txt");
    if(!file.is_open()){
        std::cout << "File not found" << std::endl;
        return -1;
    }

    return 0;
}
曾鸿振
2023-03-14

在C 17中,您有<代码>

namespace fs = std::filesystem;
fs::path f{ "file.txt" };
if (fs::exists(f)) std::cout << "yes";
else               std::cout << "nope";
 类似资料:
  • 问题内容: 我有一个fstream my_file(“ test.txt”),但我不知道test.txt是否存在。如果存在,我也想知道是否也可以阅读。怎么做? 我使用Linux。 问题答案: 我可能会选择: 该方法检查流是否准备好从中读取。

  • 我想检查文件是否存在,并尝试使用以下函数 但是,它似乎不能正常工作,因为不是检查文件的存在而是创建文件!这里有什么问题? 请注意,我被迫使用C 98标准,无法使用include

  • 问题内容: Go的标准库没有专门用于检查文件是否存在的函数(如Python的)。什么是 惯用的 方式做到这一点? 问题答案: 要检查文件是否不存在,等同于Python的文件: 要检查文件是否存在,等效于Python的文件: 编辑:根据最近的评论

  • 问题内容: 在打开文件以Java读取之前,如何检查文件是否存在?(相当于Perl的)。 关于SO的唯一类似问题涉及写入文件,因此使用回答了该问题,这显然不适用于此处。 如果可能的话,我宁愿使用真正的API调用返回,而不是使用“调用API来打开文件并在引发异常时捕获并在文本中检查’无文件’的情况下捕获”,但是我可以接受后者。 问题答案: 使用:

  • Go的标准库没有专门用于检查文件是否存在的功能(如Python的)。

  • 问题内容: 我正在使用Java 7 IO的新功能,实际上我试图接收文件夹的所有xml文件。但这在文件夹不存在时引发异常,如何检查新IO是否存在该文件夹? 问题答案: 使用: 您可以选择传递此方法的值: 还有一种方法: