如何在C++中检查文件是否存在?
如何在C++中检查文件是否存在?
如果你想使用C++11来确定文件是否存在,可以尝试以下方法:
#include#include 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; }
你可以尝试使用`"/etc/shadow"`或`"/etc/sudoers"`来进行测试。
虽然这只是一个常见的解决方案,但如果你的解决方案不具体,它可能并不是正确的或合适的解决方案。除非你有某种特定的目标要实现,也许问题没有被正确地提出。
实际上,这并不重要,只是一个词汇问题。我认为文件是否存在与文件是否可读是不同的。你的示例测试文件是否可读,如果失败则得出结论该文件不存在。实际上,该文件可能存在,但由于权限问题,无法被你的进程读取。所以我会说该文件是不可读的。(不是什么大问题...)
我猜是这样的,我改正了。
问题的出现原因是检查文件是否存在的需求,解决方法是使用C++17中的<filesystem>
库来判断文件是否存在。
C++17中,可以通过<filesystem>
库来判断文件是否存在。首先,需要引入命名空间fs = std::filesystem
,然后使用fs::path
定义文件路径,例如fs::path f{ "file.txt" }
。接着,可以使用fs::exists()
函数来判断文件是否存在,如果存在则输出"yes",否则输出"nope"。
需要注意的是,即使文件存在,也可能无法打开、读取或写入文件。另外,文件在检查返回true
后的瞬间可能会被其他进程删除。
具体的代码如下:
#include <filesystem> #include <iostream> namespace fs = std::filesystem; fs::path f{ "file.txt" }; if (fs::exists(f)) std::cout << "yes"; else std::cout << "nope";